シングル サインオン (SSO) を使用する Office アドインを Microsoft ID プラットフォームに登録する
この記事では、SSO を使用できるように Office アドインをMicrosoft ID プラットフォームに登録する方法について説明します。 アドインの開発を開始するときにアドインを登録して、テストまたは運用に進むときに、既存の登録を変更したり、アドインの開発、テスト、および運用バージョン用に個別の登録を作成したりできます。
次の表では、この手順を実行するために必要な情報と、指示に表示される対応するプレースホルダーが項目ごとに分類されています。
情報 | 例 | プレースホルダー |
---|---|---|
人間が判読できるアドインの名前です (一意であることが推奨されますが、必須ではありません)。 | Contoso Marketing Excel Add-in (Prod) |
<add-in-name> |
登録プロセスの一環として Azure によって生成されるアプリケーション ID。 | c6c1f32b-5e55-4997-881a-753cc1d563b7 |
<app-id> |
アドインの完全修飾ドメイン名 (プロトコルを除く) です。 所有しているドメインを使用する必要があります。 この理由から、azurewebsites.net または cloudapp.net などのよく知られている特定のドメインは使用できません。 ドメインは、アドインのマニフェストの <Resources> セクションの URL で使用されるサブドメインを含め、同じである必要があります。 |
localhost:6789 , addins.contoso.com |
<fully-qualified-domain-name> |
アドインに必要なMicrosoft ID プラットフォームと Microsoft Graph に対するアクセス許可。 (profile は常に必須です)。 |
profile , Files.Read.All |
N/A |
注意
機密情報: アプリケーション ID URI (<fully-qualified-domain-name>
) は、Microsoft Teams内で実行されている Office で SSO を使用したアドインがアクティブ化されると、認証プロセスの一部としてログに記録されます。 URI に機密情報を含めることはできません。
アドインを Microsoft ID プラットフォーム に登録する
Web サーバーを表すアプリ登録を Azure で作成する必要があります。 これにより、JavaScript のクライアント コードに対して適切なアクセス トークンを発行できるように、認証のサポートが可能になります。 この登録では、クライアントでの SSO と、Microsoft 認証ライブラリ (MSAL) を使用したフォールバック認証の両方がサポートされます。
Microsoft 365 テナントへの管理者資格情報を使用して、Azure portalにサインインします。 たとえば、「 MyName@contoso.onmicrosoft.com 」のように入力します。
[アプリの登録] を選択します。 アイコンが表示されない場合は、検索バーで "アプリの登録" を検索します。
[アプリの登録] ページが表示されます。
[新規登録] を選択します。
[アプリケーション登録] ページが表示されます。
[アプリケーションを登録] ページで、次のように値を設定します。
-
<add-in-name>
に [名前] を設定します。 - [サポートされているアカウントの種類] を[任意の組織のディレクトリ (任意の Azure AD ディレクトリ - マルチテナント)] と個人用 Microsoft アカウント (Skype、Xbox など) に設定します。
- [ リダイレクト URI] を 設定して、プラットフォーム の単一ページ アプリケーション (SPA) を使用し、URI を
https://<fully-qualified-domain-name>/dialog.html
します。
-
[登録] を選択します。 アプリケーション登録が作成されたことを示すメッセージが表示されます。
アプリケーション (クライアント) ID とディレクトリ (テナント) ID の値をコピーして保存します。 以降の手順では、それらの両方を使用します。
クライアント シークレットを追加する
アプリケーション パスワードと呼ばれることもあります。クライアント シークレットは、証明書の代わりにアプリが ID 自体に使用できる文字列値です。
左側のウィンドウで、[ 証明書 & シークレット] を選択します。 次に、[ クライアント シークレット ] タブで、[ 新しいクライアント シークレット] を選択します。
[ クライアント シークレットの追加] ウィンドウが表示されます。
クライアント シークレットの説明を追加します。
シークレットの有効期限を選択するか、カスタム有効期間を指定します。
- クライアント シークレットの有効期間は、2 年間 (24 か月) 以下に制限されます。 24 か月を超えるカスタム有効期間を指定することはできません。
- Microsoft では、有効期限の値を 12 か月未満に設定することをお勧めします。
[追加] を選択します。 新しいシークレットが作成され、値が一時的に表示されます。
重要
クライアント アプリケーション コードで使用するシークレットの値を記録します。 このウィンドウを離れた後、このシークレット値は 再び表示されることはありません 。
Web API を公開する
左側のウィンドウで、[ API の公開] を選択します。
[ API の公開 ] ウィンドウが表示されます。
[ 設定] を選択して、アプリケーション ID URI を生成します。
アプリケーション ID URI を設定するためのセクションは、生成されたアプリケーション ID URI を
api://<app-id>
フォームに表示します。アプリケーション ID URI を
api://<fully-qualified-domain-name>/<app-id>
に更新します。-
アプリケーション ID URI には、アプリ ID (GUID) が形式
api://<app-id>
で事前に入力されています。 - アプリケーション ID URI 形式は次のとおりです。
api://<fully-qualified-domain-name>/<app-id>
-
api://
と<app-id>
(GUID) の間にfully-qualified-domain-name
を挿入します。 たとえば、「api://contoso.com/<app-id>
」のように入力します。 - localhost を使用している場合は、形式を
api://localhost:<port>/<app-id>
する必要があります。 たとえば、「api://localhost:3000/c6c1f32b-5e55-4997-881a-753cc1d563b7
」のように入力します。
その他のアプリケーション ID URI の詳細については、「 アプリケーション マニフェスト識別子Uris 属性」を参照してください。
注:
ドメインを所有しているにもかかわらず、そのドメインが既に所有されているというエラーが表示される場合は、「クイック スタート: カスタム ドメイン名を Azure Active Directory に追加する」の手順に従って登録し、この手順を繰り返します。 (このエラーは、Microsoft 365 テナントの管理者の資格情報でサインインしていない場合にも発生する可能性があります。手順 2 を参照してください。サインアウトし、管理者の資格情報を使用してもう一度サインインし、手順 3. のプロセスを繰り返します)。
-
アプリケーション ID URI には、アプリ ID (GUID) が形式
スコープを追加する
[ API の公開 ] ページで、[ スコープの追加] を選択します。
[ スコープの追加] ウィンドウが開きます。
[ スコープの追加] ウィンドウで、スコープ の属性を指定します。 次の表は、
profile
、openid
、Files.ReadWrite
、およびMail.Read
のアクセス許可を必要とするおよび Outlook アドインの値の例を示しています。 アドインに必要なアクセス許可に合わせてテキストを変更します。フィールド 説明 値 スコープ名 スコープの名前。 一般的なスコープの名前付け規則は resource.operation.constraint
。SSO の場合、これは access_as_user
に設定する必要があります。同意できるユーザー 管理者の同意が必要かどうか、またはユーザーが管理者の承認なしで同意できるかどうかを決定します。 SSO とサンプルを学習するには、これを [管理者とユーザー] に設定することをお勧めします。
高い特権を持つアクセス許可 の場合にのみ、[管理者] を選択します。同意の表示名管理 スコープの目的の簡単な説明は、管理者にのみ表示されます。 Read/write permissions to user files. Read permissions to user mail and profiles.
同意の説明管理 管理者のみが表示するスコープによって付与されるアクセス許可の詳細な説明。 Allow Office to have read/write permissions to all user files and read permissions to all user mail. Office can call the app's web APIs as the current user.
ユーザー同意表示名 スコープの目的の簡単な説明。 [管理者とユーザーに同意できるユーザー] を設定した場合にのみ、ユーザーに表示されます。 Read/write permissions to your files. Read permissions to your mail and profile.
ユーザーの同意の説明 スコープによって付与されるアクセス許可のより詳細な説明。 [管理者とユーザーに同意できるユーザー] を設定した場合にのみ、ユーザーに表示されます。 Allow Office to have read/write permissions to your files, and read permissions to your mail and profile.
[状態] を [有効] に設定し、[スコープの追加] を選択します。
定義した新しいスコープがウィンドウに表示されます。
注:
テキスト フィールドのすぐ下に表示される [スコープ名] のドメイン部分は、たとえば
api://localhost:6789/c6c1f32b-5e55-4997-881a-753cc1d563b7/access_as_user
のように手順で設定された [アプリケーション ID URI] と自動的に一致し、最後に/access_as_user
が追加されます。[クライアント アプリケーションの追加] を選択します。
[ クライアント アプリケーションの追加] ウィンドウが表示されます。
[ クライアント ID ] に「
ea5a67f6-b6f3-4338-b240-c655ddc3cc8e
」と入力します。 この値は、すべての Microsoft Office アプリケーション エンドポイントを事前に承認します。 Microsoft Teams内で使用するときに Office を事前に承認する場合は、1fec8e78-bce4-4aaf-ab1b-5451cc387264
(Microsoft Teams デスクトップと Teams モバイル) と5e3ce6c0-2b1f-4285-8d4b-75ee78787346
(Teams on the web) を追加します。注:
ea5a67f6-b6f3-4338-b240-c655ddc3cc8e
ID は、次のすべてのプラットフォームで Office を事前に承認します。 または、何らかの理由で一部のプラットフォームで Office への承認を拒否する場合は、次の ID の適切なサブセットを入力することもできます。 その場合は、承認を保留するプラットフォームの ID を除外します。 これらのプラットフォーム上のアドインのユーザーは Web API を呼び出せなくなりますが、アドイン内の他の機能は引き続き機能します。-
d3590ed6-52b3-4102-aeff-aad2292ab01c
(Microsoft Office) -
93d53678-613d-4013-afc1-62e9e444a0a5
(Office on the web) -
bc59ab01-8403-45c6-8796-ac3ef710b3e3
(Outlook on the web)
-
[ 承認されたスコープ] で、[
api://<fully-qualified-domain-name>/<app-id>/access_as_user
] チェック ボックスをオンにします。[アプリケーションの追加] を選択します。
Microsoft Graph のアクセス許可を追加する
左側のウィンドウで、[ API アクセス許可] を選択します。
[API アクセス許可] ウィンドウが開きます。
[アクセス許可を追加] を選択します。
[ API のアクセス許可の要求 ] ウィンドウが開きます。
[Microsoft Graph] を選択します。
[委任されたアクセス許可] を選択します。
[ アクセス許可の選択 ] 検索ボックスで、アドインで必要なアクセス許可を検索します。 たとえば、Outlook アドインの場合は、
profile
、openid
、Files.ReadWrite
、Mail.Read
を使用できます。注:
User.Read
アクセス許可は既定でリストされています。 必要なアクセス許可のみを要求することをお勧めします。アドインで実際に必要ない場合は、このアクセス許可のチェック ボックスをオフにすることをお勧めします。表示される各アクセス許可のチェック ボックスをオンにします。 アクセス許可は、各アクセス許可を選択しても一覧に表示されません。 アドインに必要なアクセス許可を選択したら、[ アクセス許可の追加] を選択します。
[ テナント名] の [管理者の同意の付与] を選択します。 表示される確認のために [ はい ] を選択します。
アクセス トークンのバージョンを構成する
アプリで許容されるアクセス トークンのバージョンを定義する必要があります。 この構成は、Azure Active Directory アプリケーション マニフェストで行われます。
アクセス トークンのバージョンを定義する
アクセス トークンのバージョンは、 任意の組織ディレクトリ (任意の Azure AD ディレクトリ - マルチテナント) と個人用 Microsoft アカウント (Skype、Xbox など) のアカウントの種類以外を選択した場合に変更される可能性があります。 次の手順を使用して、アクセス トークンのバージョンが Office SSO の使用に適していることを確認します。
左側のウィンドウで、[マニフェスト] を選択 します。
Azure Active Directory アプリケーション マニフェストが表示されます。
requestedAccessTokenVersion
プロパティの値として「2」と入力します (api
オブジェクト内)。[保存] を選択します。
マニフェストが正常に更新されたことを示すメッセージがブラウザにポップアップ表示されます。
おめでとうございます! アプリの登録を完了して、Office アドインの SSO を有効にしました。
Office Add-ins