Azure ADを使用してカスタムAPIに対してMicrosoft cordova-plugin-ms-adal plugin(ネイティブライブラリを使用)を使用しているCordovaモバイルアプリ用にOAuth 2.0を設定しています。これはすべてうまくいきますが、私は秘密の使用(またはより具体的にはその不在)と少し混乱しています。OAuth 2.0認証コードの無償無償提供
ウェブ上の多くの記事では、認証コード付与を使用してトークンを要求するときに、その秘密を含めると述べています。この許可タイプは、秘密を安全に保存できる場合に使用するのに理想的です。サーバー上で
しかし、のプラグインでは、のアプリに秘密が指定されている必要はありませんが、正しく認証するために許可コード許可が使用されます。また、私は手動で、ログイン、私のブラウザで
https://login.windows.net/common/oauth2/authorize?resource=http://***.onmicrosoft.com/***API&client_id=***&response_type=code&redirect_uri=http://***.onmicrosoft.com/***App
を呼び出すコードを取得し、その後
grant_type: authorization_code
client_id: ***
code: ***
redirect_uri: http://***.onmicrosoft.com/***App
resource: http://***.onmicrosoft.com/***API
でhttps://login.windows.net/common/oauth2/tokenに投稿し、それが動作しますので、私はにせずに戻って有効なJWT、を得ることができます秘密をに送信してください。
なぜ!これは安全性が低いですか? (OAuth 2.0 spec section 4.1.3には、認可タイプ認可コードに秘密が必要であると記載されていないことに気がつきました)。
認可タイプの認可タイプを秘密/基本認証ヘッダーなしで使用することの意味は?あなたは、要求が(多分あなたはそれに気づかなかった)も含まれる投稿のリンクで
ブラウザのログインでどのようにコードを取得したのか、Javascriptまたは任意のサーバー側の言語を使用してPOSTを行ったことが分かりますか? 私はこの問題に直面しており、あなたの助けが必要です!!!! –
@SouravDas私はより良い理解を得ることができたので、手動でエンドポイントを呼び出していました。ブラウザで最初のURLを呼び出してログインすると、?code = paramで設定したredirect_uriにリダイレクトされます。トークンエンドポイントにPOSTするときにこの値を使用します - これをテストするためにhttps://www.getpostman.comを使用しました。私の実際のコードでは、私のためにこれを処理するcordova-plugin-ms-adalプラグインのセットアップがあります! – Mac
返事をありがとう。私たちはAZADではなくADFSを使用していますので、私はすべてを書かなければなりません! –