web-dev-qa-db-ja.com

Azure Active DirectoryのネイティブアプリとWebアプリの正確な違いは何ですか

グラフAPIを使用するためにAzure Active Directoryにアプリケーションを登録すると、アプリケーションWebアプリケーションとネイティブアプリケーションの2つのタイプがあることがわかります。

Webアプリケーションの作成中に、1つのサインオンURLと2.アプリIDのURLの2つの値が要求されます。これらの値の用途は何ですか?実世界のURLが必要ですか、それとも https:// localhost:randomePort 十分ですか?

一方、ネイティブアプリケーションの作成中は、必要な値「リダイレクトURL」が1つしか表示されません。

REST callを使用してWebアプリケーションのアクセストークンを取得できます。

POST https://login.microsoftonline.com/<tenant-id>/oauth2/token

grant_type      client_credentials
client_id       (the client ID of the calling service application in the AD)
client secret   (the key configured in the calling service application in the AD)
resource        https://graph.windows.net

しかし、このようなREST call?を使用してネイティブアプリのアクセストークンを取得するにはどうすればよいですか?ネイティブアプリのクライアントシークレットがないため]

アクセス許可については、ネイティブアプリの場合、利用可能な委任されたアクセス許可オプションのみが表示されますが、Webアプリの場合、アプリケーションのアクセス許可と委任されたアクセス許可オプションが表示されます。

もう1つ、上記のREST呼び出しの例ではアプリケーションを認証します。REST call?

29
sagar

ネイティブアプリケーションは、OAuth2用語ではパブリッククライアントです。これらのアプリはデバイス上で実行されることを意図しており、秘密を保持することは信頼されていません。したがって、ディレクトリのエントリには対応するプロパティがありません。秘密がなければ、アプリのIDを主張する方法はありません。したがって、そのようなアプリはアプリレベルの権限を取得できず、ポータルUXはそれを反映します。逆に、Webアプリは、再びOAuth2の用語では、機密クライアントです。ユーザーに委任されたトークンを取得できますが、クライアント資格情報を使用してトークンを取得することもできます。ネイティブアプリは、OAuth2認証付与を介してユーザーのトークンを取得できます。 https://Azure.Microsoft.com/en-us/documentation/articles/active-directory-authentication-scenarios/ で、サポートされているすべてのトポロジの概要を見つけることができます。各シナリオの説明は、より実装指向のガイダンスを示しています。

41
vibronet