問題タブ [azure-ad-graph-api]

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.

0 投票する
1 に答える
942 参照

ios - 別のユーザー サインオンによる iOS 例外の ADAL

Azure 認証に ADAL iOS ライブラリを使用しています。ただし、最初に 1 つのアカウントでサインオンし、次にサインアウトして別のアカウントでサインインすると、問題が発生します。「AD_PROMPT_ALWAYS」を設定しても、次のエラーが発生します。

私はキャッシュをクリアし、私が思うクッキーを試してクリアしました:

しかし、クリアするCookieはなかったと思います。ログオン Web ページを取得すると、ユーザー名が事前に入力されます。数週間/数か月前は問題なく動作すると思っていましたが、今は問題があるようです。今日、最新の GitHub ソースから新しいライブラリをビルドします。

ユーザー名の切り替えを可能にする方法について何か提案はありますか?

0 投票する
1 に答える
4915 参照

azure - ユーザーではなくアプリケーションに代わって Azure Graph API にアクセスする

前の質問: ADAL JS で Azure AD と OAuth2 の暗黙的な許可を使用してクレームをグループ化する に続いて、ユーザーが Azure/ADAL JS を使用して認証できるように設定し、トークンを使用して Azure Graph API にアクセスします。そのユーザーに代わって。これはうまく機能し、ユーザーとグループの情報を取得できます。

ただし、別のシステムが個々のユーザーとしてではなく、アプリケーションのコンテキストでアプリケーションにログインするというユース ケースがあります。正しく行っているかどうかはわかりませんが、AAD API からトークンを要求することによって認証するクライアント キーを持つ 2 つ目の Azure AD アプリケーションを取得しました。トークンを取得して、それをアプリケーションに渡すことができます。ただし、そのトークンを使用して、そのユーザー (現在はアプリケーション) に代わって Azure Graph API にアクセスすることはできなくなりました。

まず、これは実際に可能ですか、それとも私は不可能を試みていますか?

可能であれば、それを機能させるにはどうすればよいですか? Azure アプリケーションのアクセス許可だけですか? コードで別の方法で行う必要がありますか?

ユーザーに代わって Graph API にアクセスするために使用するコード (例外処理と null チェックを削除) は次のとおりです。

私が得る例外はAADSTS50034: To sign into this application the account must be added to the {directory ID of my main application} directory、のエラーですinvalid_grant

すべての Azure アプリケーションが正しく構成されていると信じているため、少なくともユーザー認証用であるため、何が間違っていたのかわかりません。また、他のディレクトリがユーザー認証に必要とする 2 番目の Azure AD (クライアント) アプリケーションにも、同じアプリケーションと委任されたアクセス許可を適用しました。

どんな助けでも大歓迎です。

更新: システムの概要/構成

そのため、システムがどのように構成されているかについて十分なコンテキストを提供していないように見えるので、ここでそれに対処しようとしましょう。

Azure で実行されているエンタープライズ SaaS アプリケーションがあります (これをアプリケーションと呼びましょう)。Azure AD には "アプリケーション" があります (混乱を避けるために、これを AAD アプリケーションと呼びましょう)。これはマルチテナント AAD アプリケーションであり、ユーザーは AAD 経由で OAuth2 を使用して認証します。

エンタープライズ アプリケーションであるため、お客様はすべて独自の Azure AD (オンプレミス AD と同期されている場合とされていない場合があります) を持っています (これを AADと呼びましょう)。アプリケーションと連携するようにシステムを構成する場合、AADのグローバル管理者に、Windows Azure Active Directory に対する次のアクセス許可に対するAAD アプリケーションの同意を付与してもらいます (管理者の同意付与を使用) 。

  • アプリケーションの権限:
    • ディレクトリ データの読み取り
  • 委任された権限:
    • サインインしたユーザーとしてディレクトリにアクセスする
    • ディレクトリ データの読み取り
    • サインインしてユーザー プロファイルを読む

ユーザーがアプリケーションを参照すると、認証のために Azure にリダイレクトされます。( AADまたはAADに接続されたオンプレミスの AD を介して)認証された後、Web アプリを介して行われたすべての API 呼び出しにはベアラー トークンが含まれます。各 Bearer トークンを初めて確認すると、それを使用して Azure Graph API (ユーザーに代わって) の新しいトークンを取得し、Graph API にユーザーの詳細とグループ メンバーシップを照会します。これはすべて、ユーザーが自分のユーザー アカウントを使用して UI を介して認証する場合に機能します。

私たちが今目指していることは、顧客が別のダウンストリーム アプリケーション (ダウンストリーム アプリケーション) に独自の Bearer トークンを取得させて、アプリケーションを使用できるようにすることです。今回はユーザーがいないため、クライアント資格情報の付与フローを見ています。これを行うために、お客様は独自の AAD アプリケーション ( AAD アプリケーション) を所有しており、これはAADに含まれています (上記のように既に同意が付与されています)。ダウンストリーム アプリケーションはベアラー トークンを取得して、アプリケーションにアクセスできます。ただし、Azure Graph API のトークンを取得しようとすると (ダウンストリーム アプリケーションの代わりに)、上に貼り付けたエラー メッセージで失敗します。

更新 2

私のチームの別のメンバーがいくつかの調査を行い、これらは彼の発見です.

SDK が舞台裏で何をしているのかを調べ、すべてのリクエストを手動で行って、私たちが行っていることをより適切に再現できるようにすることで、手動でプロセスを進めてきました。

そのため、呼び出し元のサービス (Azure Active Directory 内の Web アプリケーション セットアップ) は、Azure から OAuth トークンを取得します。

そして、、、 などを含み、 、 などを appid含まない有効なトークンを取得します(ユーザーではなくアプリケーションであるため)。tidoidissnameupn

次に、Graph API からサービス プリンシパルの詳細を検索し、アプリケーションに代わって Graph API トークンを取得するように要求します。

これは基本的に、次のコード (SDK コードから抽出) を呼び出すとどうなるかです。

返されるのは次のとおりです。

質問は、呼び出し元が実際のユーザーではなく Web/ネイティブ アプリケーションである場合、ベアラー トークンを使用して呼び出し元に代わってグラフ API トークンを取得できるかということだと思います。

0 投票する
1 に答える
1731 参照

azure - Azure AD: AADSTS50003: 署名キーが構成されていません

組織のアプリケーションの ID プロバイダーとして Azure AD を構成しました

以下のブログで指定されているように

Azure AD セルフサービス SAML 構成を使用して独自のアプリを導入する

アクティビティ ディレクトリの下にアプリケーションを作成し、以下と同じようにシングル サインオン (SAML2) を構成しました。

アプリケーションにアクセスしようとすると、要求が Azure ログインにリダイレクトされます。しかし、不正なリクエスト エラーが発生し、以下のメッセージが表示されます

アプリケーションにアクセスしようとすると、常に Azure ログイン ページにリダイレクトされます。まだログインしていない場合、ログインするように求められ、ログイン後に上記のエラーがスローされます。すでにログインしている場合; エラーが直接表示されます

構成に何か不足していますか

0 投票する
1 に答える
95 参照

authorization - Azure Graph API の OData クエリ?

Azure GraphAPI の isMemeberOf API の OData クエリを手伝ってくれる人はいますか

参照は次のとおりです: https://msdn.microsoft.com/en-us/Library/Azure/Ad/Graph/api/functions-and-actions#isMemberOf

デモで実行できるサンプル oData クエリを探しています https://graphexplorer.cloudapp.net/Home/Index/DemoCompany

以下のシナリオの場合: "groupId": "5e624f44-d38d-4943-b07c-2bad078f52ff"、"memberId": "ea59e4d3-a7a1-4b5b-b65f-a25fcc0c0f99"

以下のようにグループ名とmemberIdでクエリできるかどうか疑問に思っています

"displayName": "SampleSecurityGroup", "memberId": "ea59e4d3-a7a1-4b5b-b65f-a25fcc0c0f99"

前もって感謝します。

0 投票する
2 に答える
434 参照

authentication - Azure AD を使用した WebApp WebApi 認証でのトークン検証?

WebApp <=> WebApi 認証シナリオに取り組んでいます。ここでは、WebApp で Azure AD から JWT トークンを取得し、それを WebApi に渡します。WebApi で、WebApp のトークンから Azure GraphAPI のアクセス トークンを生成し、承認のために GraphAPI を呼び出します。

ユーザー認証は WebApp と WebApi の両方で同じであるため、WebApp と WebApi は両方とも Azure テナント ポータルに単一のアプリケーションとして登録されます。

これはイントラネット アプリケーションであり、AD のすべてのユーザーに公開されています。トークンの検証または認証に関連するいくつかの質問。

  1. WebApp と WebApi の両方でトークンの Tenant と Audience を確認する必要がありますか?
  2. WebApp、WebApi、またはその両方で、他にどのようなトークン検証を実行する必要がありますか?

JWT トークンはデジタル署名され、暗号化されているため。トークンが WebApp から渡されたときに、WebApi で検証を行わないと、どのような影響がありますか?

お知らせ下さい。

0 投票する
1 に答える
348 参照

php - Azure Graph API 経由で更新中に操作を完了するための権限が不十分です

グラフ API を使用して Azure でユーザー プロファイルを更新しようとしています。「モバイル」属性に関しては、「操作を完了するのに十分な権限がありません」という例外を受け取ります。city、streetAddress、telephoneNumber などの多くの属性は、PHP コードの同じ部分で正常に更新されます。これは構成/スキーマの問題ですか?

0 投票する
1 に答える
13292 参照

azure - オンプレミスの Active Directory ObjectId は Azure Active Directory ObjectId とは異なります

Azure Active Directory と同期するオンプレミスの Active Directory があります。グループはオンプレミス AD で作成され、[属性エディター] タブで objectGUID を見ると 1 つの値が表示されますが、Azure Graph API でその値を使用してグループを取得しようとすると(同期が発生した後)、取得されます。これ

同期中にオンプレミス GUID を Azure objectId と同じにする方法はありますか? それとも、これら 2 つのフィールドは関連していませんか?

0 投票する
1 に答える
1850 参照

azure - Azure Graph API を使用して期限切れのパスワードを変更する

Graph API に対して認証する次の Python コードがあります。

パスワードの有効期限が切れているユーザーがいる場合、(予想どおり) 応答が返されます。

Graph API では、エンドポイントを使用してパスワードをリセットできますが、そのためには有効なトークンが必要です (ドキュメントに記載されているエンドポイントに PATCH 要求を行うため)。ログインできなかったため、トークンを持っていません。

Azure Graph API を使用して有効期限が切れたユーザー パスワードを変更する正しい方法は何ですか?

0 投票する
1 に答える
10910 参照

c# - API アプリで使用するベアラー トークンを Azure AD から取得できません

Azure AD 認証で保護されている Azure のプライベート API アプリにアクセスする必要がある MVC アプリケーションがあります。そのため、Azure AD ベアラー トークンを取得し、それをZumo-Authトークンに転送し、それを使用して API アプリにアクセスする必要があります。

私はこのチュートリアルを進めており、からトークンを要求する必要がある時点まで、すべてが正常に機能していますauthContext。コードのスニペットは次のとおりです。

の行がauthContext.AcquireToken(appIdUri, credential)問題の原因です。

appIdUri私が与えるようhttps://MyAppGateway-814485545465FAKE4d5a4532cd.azurewebsites.net/login/aadに、例外が発生した場合:

400: AdalServiceException: AADSTS50001: リソース ' https://MyAppGateway-814485545465FAKE4d5a4532cd.azurewebsites.net/login/aad ' がアカウントに登録されていません。

しかし、この正確な行はReply UrlADアプリケーションのリストにあります

Azure AD アプリケーションの応答 URI

使用しようとしたとき、https://MyADDomain.onmicrosoft.com/MyAppNameまたは別の例外メッセージが表示https://MyADDomain.onmicrosoft.com/されたとき:appIdUri

400: AdalServiceException: AADSTS50105: アプリケーション '04472E33-2638-FAKE-GUID-F826AF4928DB' は、アプリケーション ' https://MyADDomain.onmicrosoft.com/MyAppName 'のロールに割り当てられていません

または

400: AdalServiceException: AADSTS50105: アプリケーション '04472E33-2638-FAKE-GUID-F826AF4928DB' は、アプリケーション ' https://MyADDomain.onmicrosoft.com/ 'のロールに割り当てられていません

どちらの場合もApp ID URI、AD アプリケーションで ' https://MyADDomain.onmicrosoft.com/MyAppName ' または ' https://MyADDomain.onmicrosoft.com/ ' に設定しました。のリストにある両方の名前ですReply URL

最終的に、十分な試行を重ねた後、https://graph.windows.netasappIdUriを入れて、ベアラー トークンを取り戻しました。しかし、トークンは過去の有効期限 (過去約 1 分) で与えられました。そのため、これ以上何もできませんでした。401-Unauthenticatedトークンを使用して API アプリにログインしようとしたときに取得しました。

私は何が欠けていますか?