2016-09-14 2 views
3

以下から、アプリケーションが委任されたアクセス許可で構成され、サインインされたユーザーに代わってすべての要求が行われることが推測されます。Azure Active Directoryアプリケーションのコンテキストで「委任されたアクセス許可」とは何ですか?

したがって、委任されたアクセス許可の下に、「サインインしたユーザーとしてディレクトリにアクセスする」オプションが表示されます。これは実際に何をするのですか?

アプリケーションのアクセス許可:クライアントアプリケーションは、 Web APIに直接アクセスする必要があります(ユーザーコンテキストなし)。このタイプのアクセス許可 には管理者の同意が必要で、Native クライアントアプリケーションでは利用できません。

委任された権限:お客様のクライアントアプリケーションは、 権限でアクセスが制限されており、ウェブ APIにログインしているユーザーとしてアクセスする必要があります。このタイプのアクセス許可は、 の権限が管理者の同意を必要とするものとして構成されていない限り、ユーザーが許可することができます。

答えて

2

だから、委任アクセス権の下で、我々は持っている「に署名しているユーザー としてディレクトリにアクセスする」オプションが記載されています。これは実際に何をするのですか?

非常に単純な言葉で言えば、委任されたアクセス許可の場合、アプリケーションは本質的にあなた(またはログインしているユーザー)を偽装します。

たとえば、Azureサービス管理APIにアクセスする権限を委譲して、Azure ADでWebアプリケーションを作成したとします。このアプリケーションにログインし、Azureリソース(ストレージアカウント、VMなど)にアクセスしようとすると、そのAzureサブスクリプションで許可されていることをアプリケーションだけが実行できます。たとえば、AzureのサブスクリプションでReaderロールにいる場合(つまり、リソースの作成/更新/削除はできません)。アプリケーションを通じてリソースを作成しようとすると、アプリケーションがあなたを偽装しているため、エラーが返されます。

+0

「ログインしたユーザーとしてディレクトリにアクセスする」を削除するとどうなりますか? APIにヒットするために使用するクレデンシャルはどれですか? – Sunny

+0

この場合、アプリケーションにアクセス権を割り当てていないため、アプリケーションはそのディレクトリにアクセスできません。 –

+0

これはオフラインアクセスを許可するのと同じですか? – fei0x

0

権限を委任されているユーザーはAzure ADにログインし、その結果の認証トークンをアプリケーションに提示する必要があります。アプリケーションは、クライアントID、シークレット(該当する場合)およびをユーザーの認証トークンに渡すことによって、呼び出しを行うことができます。アプリケーションの有効な権限は、ユーザーとアプリケーションの最低の組み合わせになります。たとえば、アプリケーションにリソースへの読み取り/書き込みが許可されていても、ユーザーが読み取っただけの場合は、有効なアクセス許可が読み取られます。ユーザーが読み取り/書き込みを持っていても、アプリケーションが読み取りのみを行っている場合も同じことが言えます。

アプリケーションのアクセス許可には、ユーザーがログインする必要はありません。あなたのクライアントIDと秘密だけで十分です。アプリケーションのアクセス許可がなく、認証されたユーザーのトークンを提示せずにAPIにアクセスしようとすると、401エラーが発生します。

関連する問題