Azure Active Directory ID を独自の ID プロバイダーとリンクする (プレビュー)
重要
グローバル スコープを持つ新しいアクション可能メッセージ プロバイダーのオンボードは、サービスのアップグレードにより、2024 年 6 月 30 日まで一時的に一時停止されます。 既存 のグローバル スコープ プロバイダーと 組織 および テスト スコープ プロバイダーのオンボードは影響を受けません。 詳細については、「 アクション可能なメッセージについてよく寄せられる質問」を参照してください。
アクション可能メッセージの Action.Http アクションには、ユーザーの ID に関する情報をAuthorization
提供する Azure AD 発行のトークンがヘッダーに含まれています。 ただし、この情報では、サービスに対するユーザーの認証には十分でない場合があります。 ID リンクを使用すると、ユーザーがサービスで認証できるように、Outlook クライアントに UI を提示するように通知できます。 ユーザーが認証したら、Azure AD ID を独自の ID に関連付けて、将来の要求に対するシームレスな認証を可能にすることができます。
ID リンクの使用
サービスは、ヘッダーを含む応答を返すことによって、任意 Action.Http
の 401 Unauthorized
アクション エンドポイントで認証を ACTION-AUTHENTICATE
トリガーできます。 ヘッダーには、サービスの認証 URL が含まれています。
認証が完了したら、元の要求で送信されたヘッダーで Identity-Linking-Redirect-Url
指定された URL に要求をリダイレクトします。
ID リンク フロー
アクション エンドポイントへの初期要求
Microsoft サーバーは、最初の POST 要求をアクション エンドポイントに送信します。
POST https://api.contoso.com/myEndpoint
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6...
Identity-Linking-Redirect-Url: https://outlook.office.com/connectors/adelev@contoso.com/723a1c49-f8dc-4063-843e-d4c2b7180b8b/postAuthenticate
Content-Type: application/json
{
// action body
}
サービス は JWT トークンを検証 し、要求から sub
ユーザーの ID を抽出します。
{
...
"sub": "AdeleV@contoso.com",
"aud": "https://api.contoso.com"
}
サービスでは、 のリンクされた ID を AdeleV@contoso.com
持つユーザーが見つからないため、ヘッダー値が Identity-Linking-Redirect-Url
保持され、応答が 401
返されます。
注:
ヘッダーからの Identity-Linking-Redirect-Url
リダイレクト URL を保持するために使用する正確なメソッドは、実装によって異なります。 サービスで OAuth を使用する場合は、たとえば、 パラメーターに state
保存できます。
HTTP/1.1 401 Unauthorized
ACTION-AUTHENTICATE: https://identity.contoso.com/authenticate?state=https://outlook.office.com/connectors/adelev@contoso.com/723a1c49-f8dc-4063-843e-d4c2b7180b8b/postAuthenticate
認証要求
Outlook が ヘッダーと共に を401
ACTION-AUTHENTICATE
受け取ると、作業ウィンドウが開き、ヘッダーから URL に移動します。
GET https://identity.contoso.com/authenticate?state=https://outlook.office.com/connectors/adelev@contoso.com/723a1c49-f8dc-4063-843e-d4c2b7180b8b/postAuthenticate
サービスはユーザーを認証し、Azure AD によって発行されたトークンによって提供された ID をシステム内のユーザーに関連付けます。 完了すると、サービスはヘッダーから URL に要求を Identity-Linking-Redirect-Url
リダイレクトします。
HTTP/1.1 302 Found
Location: https://outlook.office.com/connectors/adelev@contoso.com/723a1c49-f8dc-4063-843e-d4c2b7180b8b/postAuthenticate
再試行アクション
Outlook が認証サーバーからリダイレクトを受信すると、元の要求が直ちに再試行されます。 今回は、Azure AD ID を独自の ID に関連付けられているため、エンドポイントは要求を正常に処理します。
例
[アクション可能メッセージ] Designerの次のサンプル カードを使用して、この動作を確認できます。 このカードのエンドポイントは、Microsoft ID プラットフォームにログインするように求め、(同意を得て) プロファイルを取得するための Graph 要求を行います。 このエンドポイントのコードは、 GitHub のサンプルとして使用できます。
{
"hideOriginalBody": true,
"type": "AdaptiveCard",
"padding": "none",
"body": [
{
"type": "TextBlock",
"text": "Identity Linking Demo"
},
{
"type": "ActionSet",
"actions": [
{
"type": "Action.Http",
"method": "POST",
"url": "https://amidentitylinking.azurewebsites.net/action",
"body": "{}",
"title": "Get User Details",
"isPrimary": true
}
]
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.0"
}
クライアント サポート ロードマップ
ID リンクは、今後追加される機能をサポートして、限られたクライアント セットで使用できます。 次の表に、おおよそのタイムラインを示します。
クライアント | Availability |
---|---|
Office 365 ProPlus | 使用可能 |
Office 365 の Outlook on the web | 近日対応予定 |
Outlook on iOS | 近日対応予定 |
Outlook on Android | 近日対応予定 |
Outlook on Mac | TBD |