問題タブ [odata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - JavaScript / JSONベースのOData呼び出しはどのように認証されますか?
私はODataを初めて使用します(ほとんどの人がそうだと思います)。
ODataサービスを使用している場合、不正使用から保護するにはどうすればよいですか?WS-Trust / SAML、またはそれが重要な場合は標準認証を使用することを検討しています。
web-services - JSONP は完全に公開された API にのみ使用することを意図していますか?
Web サイト ユーザーのデータを公開する WCF Data Services を使用して API を開発しました。
そこでホストされているデータは各ユーザーに属し、公開されていないため、API は各クライアントに固有の API キーと http ヘッダーまたは GET パラメーター ベースの認証で保護されています。
今、API で JSONP を有効にする必要があるかどうか疑問に思っています。マッシュアップがはるかに簡単になるようですが、一方で、JSONP 自体が安全ではないことを示唆しているように見える次のようなブログ投稿を見たことがあります。
私は何か間違っていることを理解していますか、それともJSONPは実際にパブリックAPIのみを対象としていますか?
ありがとう、
エイドリアン
odata - OData-データサービスの単純な認証
今のところ、単純なトークンによって特定のアプリケーションへのアクセスを制限するためだけに、単純な認証をDataServicesに追加したいと思います。
ドメイン認証やフォーム認証は必要ありません。
私はここで認証についてたくさん読みました:
http://franssenden.wordpress.com/2010/06/14/custom-security-odata-service-wcf-data-services/
http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/06/03/10482.aspx
http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/01/15/10119.aspx
http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/01/10/10100.aspx
残念ながら、それはすべて大量の作業を必要とします。とりわけ、カスタムIHttpModuleを作成します。もっと簡単な解決策があるはずです。
クライアント(WPF)でオブジェクトコンテキストを作成すると、資格情報を追加できることを知っています。
しかし、どこでそれらを読むことができますか(カスタムIHttpModuleの実装なしで)?
たとえば、データサービスの実装であるクラスで何かを使用できると思いました。
私はUserInfoに精通していませんが、その説明は「ユーザー名、パスワード、...を取得します」です。
だから私は2つの主な質問があります:
ent.Credentials = new NetworkCredential( "token"、 "zx5as9vxc5sa9h0vb6523cv56");と入力すると、含まれている資格情報をどこで読み取ることができますか。
クライアントアプリでUserInfoを設定し、OnStartProcessingRequestメソッドで使用できる場所(可能な場合)。
よろしく、ダニエルSkowroński
sql - OData は、政府および金融環境での使用を意図していますか? どのようなセキュリティ対策が必要ですか?
一見したところ、OData は「オープンな」データベースにしかアピールできず、セキュリティが必要な環境、特に金融機関や政府機関のクライアントでは使用されないように思えます。
これは、現在のバージョンの OData/WCF で使用する正しいパースペクティブですか? そうでない場合は、その視点を変えるために必要なものを共有できますか?
アップデート
現在の懸念事項の例は次のとおりです。
- SQL インジェクションの可能性が高まる
- 追加のデータ検証 (ビジネス ロジックの複雑化)
- データへの不正アクセス
- データの「生のダンプ」を行う能力の向上
- つまり、OData を使用して HR データを取得する方が簡単で、従来の ASP.net ページをスクリーン スクレイピングする方が簡単です。
更新 2
ビジネスルールを強制することも可能ですか? たとえば、適切にフォーマットされた SSN、電話、または Zip などです。すべてのフィールドが入力されていることを確認するのはどうですか?
javascript - 同じものでAJAXを使用したい場合、ASP.NETサイトへの「有料アップグレード」としてWCF / ODataアクセスを実装するにはどうすればよいですか?
彼らが私のウェブサイトにアクセスした場合、私の所有権データへの無料アクセスを提供するビジネスモデルを楽しんでいると仮定します。これらのユーザーは、広告が費用を助成することになります。
次に、有料ユーザーに対して、インセンティブとしてデータへの直接の生のWCFアクセスを提供したいと思います。景品ユーザーがこれを利用できるようにしたくありませんが、同時にサイトはAJAXを使用してページコンテンツをレンダリングしています。
問題
現在のように、AJAXと生のWCFアクセスはネットワーク上で同一に見えます。トラフィックのソースが何であるか(Webページかどうか)を特定し、実装を悪用から保護する必要があります。
考えられる解決策は?
(ASP.net/Javascript内の)ページ変数を取得し、これを無料ユーザーに必要な検証キーとして使用できる場合があります。このキーをすべてのAJAXリクエストに含めることができます。これが最善の解決策である場合、サーバーからクライアントにどのように送信すればよいですか?
認証について
これが重要かどうかはわかりませんが、すべてのユーザー(有料および無料)が認証されます。Cookieはクライアントに保存され、STSによって生成される可能性があります。
silverlight - WCF DataServices 拡張 12 の制限事項
Silverlight アプリで WCF DataServices を使用しています。私の問題は、私が参照しているモデルでは、12 を超える拡張プロパティにアクセスする必要があることです。その理由は、再帰モデルを使用してサービスを参照していて、基本的に 4 つのレベルで 5 つの展開が必要であるためです。これは明らかに 12 である展開の最大数を超えています。目的の効果を得るために BeginLoadProperty を何百回も呼び出すのではなく、別の解決策はありますか?
wcf - RIA サービス OData "クエリ オプションは許可されていません。"
RIA によって自動的に作成された OData エンドポイントがあり、単純な「get」クエリで動作するようです。
例えば
http://xxx/Service/BusinessApplication1-Web-DomainService1.svc/odata/ProductSet
しかし、「where」や「top」などのクエリを使用しようとすると、次のようになります。
.../BusinessApplication1-Web-DomainService1.svc/odata/ProductSet?$top=50
「クエリ オプションは許可されていません」という結果になります。
正常に動作し、クエリを許可する OData エンドポイントを持つ WCF データ サービスをセットアップしましたが、RIA によって生成されたエンドポイントが動作しないのはなぜですか?
ありがとう!
odata - ODataプロキシのプログラムによる生成
WCFデータサービス(ADO.NETデータサービス)を使用したODataサービスが利用可能です。プログラムでODataサービスを利用する必要があります。ある意味では、DataSvcUtilを使用してプロキシを作成したくありません。代わりに、実行時にODataプロキシを生成する必要があります。
WSDLの場合、CodeDOMとSystem.ServiceModel.Discoveryを使用してプロキシを生成できます。
ODataプロキシを生成するプログラム的な方法があるかどうか知りたいです。
ありがとう
sql - odataのsqlクエリの何が問題になっていますか?
年齢ごとのユーザー数を取得しようとしています。odata.stackoverflow.comのこのSQLクエリの何が問題になっていますか?
c# - WCF Data Services での列挙型の使用
POCO データ モデルを使用して WCF データ サービスを手動で構築しようとしていますが、enum
値を適切に公開する方法がわかりません。次のような単純なモデルを想定します。
OrderStatus
OData WCF データ サービスを介して、プロパティ内の貴重な情報をどのように公開しますか?
何もしない場合、Data Service は実行時エラーを生成します (enum は無効なプロパティです)。少なくともエラーを解決する唯一の答えは、次のenum
ようにプロパティを無視することです。
これは機能しますが、サービス層から貴重な情報を「省略」する必要があります。WCF Data Services で列挙値を操作するための他のオプションはありますか?
編集:これはWCF Data Services (別名 Astoria)であることに注意してください。これは生の WCF サービスではありません。その場合、答えはより明確になります。