内部ユーザーを B2B コラボレーションに招待する
適用対象: 従業員テナント 外部テナント (詳細情報)
Microsoft Entra B2B コラボレーションが利用できるようになる前は、組織は販売代理店、仕入先、製造元、およびその他のゲスト ユーザーの内部資格情報を設定することによって、これらのユーザーと共同作業を行うことができていました。 このような内部ゲスト ユーザーがいる場合、代わりに B2B コラボレーションを使用するように招待することができます。 これらの B2B ゲスト ユーザーは、自分の ID と資格情報を使用してサインインできるため、パスワードのメンテナンスやアカウントのライフサイクル管理が不要になります。
既存の内部アカウントに招待を送信することにより、そのユーザーのオブジェクト ID、UPN、グループ メンバーシップ、およびアプリの割り当てを保持できます。 ユーザーを手動で削除して再び招待したり、リソースを再割り当てしたりする必要はありません。 ユーザーを招待するには、招待 API を使用して、内部ユーザー オブジェクトとゲスト ユーザーの電子メール アドレスの両方を招待と共に渡します。 ユーザーが招待に同意すると、B2B サービスによって既存の内部ユーザー オブジェクトが B2B ユーザーに変更されます。 これ以降、ユーザーは B2B 資格情報を使用してクラウド リソース サービスにサインインする必要があります。
考慮事項
オンプレミスのリソースへのアクセス:ユーザーは、B2B コラボレーションに招待された後も、内部資格情報を使用してオンプレミスのリソースにアクセスできます。 内部アカウントのパスワードをリセットまたは変更することで、これを防ぐことができます。 例外は、電子メール ワンタイム パスコード認証です。ユーザーの認証方法がワンタイム パスコードに変更された場合、そのユーザーは内部資格情報を使用できなくなります。
課金: この機能を使用してもユーザーの UserType は変更されないため、ユーザーの課金モデルは外部 ID 月間アクティブ ユーザー (MAU) 価格には自動的に切り替わりません。 ユーザーの MAU の価格をアクティブにするには、ユーザーの UserType を
guest
に変更します。 また、MAU の課金をアクティブにするには、Microsoft Entra テナントを Azure サブスクリプションにリンクする必要があることにご注意ください。Teams:ユーザーが外部資格情報を使用して Teams にアクセスしたとき、初期状態では Teams テナント ピッカーでそのテナントを使用できません。 ユーザーは、テナント コンテキストを含む URL (例:
https://teams.microsoft.com/?tenantId=<TenantId>
) を使用して Teams にアクセスできます。 その後は、Teams テナント ピッカーでテナントを使用できるようになります。オンプレミスの同期されたユーザー:オンプレミスとクラウドの間で同期されたユーザー アカウントの場合、B2B コラボレーションを使用するように招待された後も、オンプレミス ディレクトリが引き続き権限ソースとなります。 アカウントの無効化や削除を含む、オンプレミスのアカウントに対して行ったすべての変更は、クラウド アカウントに同期されます。 そのため、単にオンプレミスのアカウントを削除するだけでは、ユーザーがクラウド アカウントを維持しながらオンプレミスのアカウントにサインインできないようにすることはできません。 その代わりに、オンプレミスのアカウントのパスワードをランダムな GUID またはその他の不明な値に設定することができます。
Note
Microsoft Entra Connect 同期では、onPremisesUserPrincipalName 属性を user オブジェクトに書き込む既定の規則があります。 この属性が存在すると、ユーザーが外部資格情報を使用してサインインできなくなる可能性があるため、この属性を使用するユーザー オブジェクトの内部から外部への変換をブロックします。 Microsoft Entra Connect を使用している場合に、B2B コラボレーションに内部ユーザーを招待できるようにするには、onPremisesUserPrincipalName 属性が user オブジェクトに書き込まれないように、既定の規則を変更する必要があります。
B2B コラボレーションに内部ユーザーを招待する方法
Microsoft Entra 管理センター、PowerShell、または招待 API を使用して、B2B 招待を内部ユーザーに送信することができます。 注意事項:
ユーザーを招待する前に、内部ユーザー オブジェクトの
User.Mail
プロパティ (Microsoft Entra 管理センターでのユーザーの Email プロパティ) が、ユーザーが B2B コラボレーションに使用することになる外部メールアドレスに設定されていることを確認します。 内部ユーザーに既存のメールボックスがある場合、このプロパティを外部メール アドレスに変更することはできません。 Exchange 管理センターでそれらの属性を更新する必要があります。ユーザーを招待すると、招待が電子メールでユーザーに送信されます。 PowerShell または招待 API を使用している場合は、
SendInvitationMessage
をFalse
に設定することで、この電子メールを抑制できます。 その後、別の方法でユーザーに通知できます。 招待 API について詳しく見る。ユーザーが招待を引き換える場合、使用しているアカウントは
User.Mail
プロパティのドメインと一致する必要があります。 そうしないと、Teams などの一部のサービスがユーザーを認証できなくなります。
Microsoft Entra 管理センターを使用して B2B 招待を送信する
ヒント
この記事の手順は、開始するポータルによって若干異なる場合があります。
Microsoft Entra 管理センターに少なくとも外部 ID プロバイダー管理者としてサインインします。
[ID]>[ユーザー]>[すべてのユーザー] の順に移動します。
一覧でユーザーを見つけるか、検索ボックスを使用します。 次に、ユーザーを選択します。
[概要] タブの [マイ フィード] で、[外部ユーザーに変換] を選択します。
Note
カードに「この B2B ユーザーの招待を再送信するか、引き換えの状態をリセットする」と表示されている場合、 ユーザーは B2B コラボレーションに外部の資格情報を使用するようにすでに招待されています。
外部メール アドレスを追加し、[送信] を選択します。
注意
オプションを使用できない場合は、ユーザーの[ 電子メール] プロパティに、B2B コラボレーションで使用する外部メールアドレスが設定されていることを確認します。
確認メッセージが表示され、招待が電子メールでユーザーに送信されます。 その後、ユーザーは外部の資格情報を使用して招待を利用することができます。
PowerShell を使用して B2B の招待を送信する
最新の Microsoft Graph PowerShell モジュールが必要になります。 次のコマンドを使って、最新のモジュールに更新し、B2B コラボレーションに内部ユーザーを招待します。
Update-Module Microsoft.Graph
Get-MgUser -UserId '00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
New-MgInvitation -InvitedUserEmailAddress John@contoso.com -SendInvitationMessage:$true -InviteRedirectUrl "https://myapplications.microsoft.com" -InvitedUser $msGraphUser
招待 API を使用して B2B の招待を送信する
次のサンプルは、招待 API を呼び出して、内部ユーザーを B2B ユーザーとして招待する方法を示しています。
POST https://graph.microsoft.com/v1.0/invitations
Authorization: Bearer eyJ0eX...
ContentType: application/json
{
"invitedUserEmailAddress": "<<external email>>",
"sendInvitationMessage": true,
"invitedUserMessageInfo": {
"messageLanguage": "en-US",
"ccRecipients": [
{
"emailAddress": {
"name": null,
"address": "<<optional additional notification email>>"
}
}
],
"customizedMessageBody": "<<custom message>>"
},
"inviteRedirectUrl": "https://myapps.microsoft.com?tenantId=",
"invitedUser": {
"id": "<<ID for the user you want to convert>>"
}
}
API への応答は、新しいゲストユーザーをディレクトリに招待したときと同じ応答になります。