Microsoft Entra IDでのユーザーとグループのプロビジョニング
最終検証日:
翻訳: 竹洞 陽一郎
この機能は、Standardプラン、Premiumプラン、Enterpriseプランで利用できます。
Tailscaleは、Microsoft Entra ID(旧称Azure AD)と連携するためのSystem for Cross-domain Identity Management(SCIM)に対応しています。
- グループ同期を使うと、tailnetポリシーファイルで、人間が読める名前でMicrosoft Entra IDのグループを参照できます。
externalGroupIdを使って、tailnetポリシーファイルでMicrosoft Entra IDのグループを参照することもできます。
- ユーザー同期を使うと、Tailscaleへのユーザーのオンボーディングとオフボーディングを素早く行えます。関連情報については、ユーザーとグループのプロビジョニングを使う場合のオフボーディング(英語)を参照してください。
- Microsoft Entra IDでユーザーを削除すると、そのユーザーはまず論理削除(英語)され、Tailscaleではそのユーザーが停止されます。その後、約30日後にMicrosoft Entra IDで物理削除されると、Tailscaleではそのユーザーが削除されます。
- Microsoft Entra IDでユーザーを無効にすると、Tailscaleではそのユーザーが停止されます。
このトピックでは、Microsoft Entra IDを、SCIMと連携したTailscaleのアイデンティティプロバイダとして設定する方法を説明します。
MicrosoftのチュートリアルConfigure Tailscale for automatic user provisioning(英語)も参照できます。
機能
次のプロビジョニング機能に対応しています。
- Microsoft Entra IDからTailscaleにユーザーを作成
- Microsoft Entra IDからTailscaleのユーザー属性を更新
- Microsoft Entra IDでユーザーを削除すると、まずTailscaleで停止され、約30日後にTailscaleで自動的に削除
- Microsoft Entra IDでユーザーを無効化すると、Tailscaleで停止
- Microsoft Entra IDからTailscaleへのグループのプッシュ
要件
- Microsoft Entra IDのサブスクリプションが必要です。
- tailnetが必要です。
- tailnetのアイデンティティプロバイダがMicrosoft Entra IDである必要があります。tailnetがMicrosoft Entra IDを使っておらず、Microsoft Entra IDを使いたい場合は、現在のアイデンティティプロバイダからMicrosoft Entra IDへ移行するために、Spelldataのサポートにお問い合わせ下さい。
設定手順
プロビジョニングを有効にする
Tailscaleでの作業
この手順を行うには、TailscaleでOwner、Admin、またはIT adminである必要があります。
SCIM APIキーを生成する
- 管理コンソールのUser managementページのSCIM Provisioningで、Enable Provisioningを選択します。
- 生成されたキーをクリップボードにコピーします。
SCIM APIキーの生成 - キーの情報を安全な場所に保存します。Microsoft Entra IDを設定するときに必要です。Tailscaleが生成するSCIM APIキーは、大文字と小文字を区別します。
Microsoft Entra IDでの作業
この手順を行うには、Microsoft Azureポータルの管理者ロールが必要です。
- Microsoft Azureポータルにログインします。
- Microsoft Entra IDを選択します。
- 左側のナビゲーションのManageで、Enterprise applicationsを選択します。
- New applicationを選択します。
- Browse Microsoft Entra GalleryページでTailscaleを検索し、Tailscaleを選択します。
- Sign up for Tailscaleを選択します。
Tailscaleのサインアップ画面にリダイレクトされます。
すでにTailscaleアカウントを持っている場合は、次の手順に進みます。
持っていない場合は、画面の指示に従ってTailscaleにサインアップします。 - アプリケーションのOverviewページで、左側のナビゲーションのManageからProvisioningを選択します。
- Get startedを選択します。
- Provisioning ModeをAutomaticに設定します。
- Admin CredentialsのTenant URLに、
https://controlplane.tailscale.com/scim/v2/?aadOptscim062020を入力します。末尾のパラメータ
?aadOptscim062020は必須です。
このパラメータについては、Microsoft Entra IDのトピックFlags to alter the SCIM behavior(英語)を参照してください。 - Secret Tokenに、Tailscaleの管理コンソールで生成したSCIM APIキーを入力します。
Microsoft Entra IDへの資格情報の入力 - Test Connectionを選択します。
入力した資格情報でプロビジョニングを有効にする権限があるかどうかを示すメッセージが、ポップアップで表示されます。
- Settingsセクションで、Send an email notification when an error occursにチェックが入っていることを確認し、通知に使うメールアドレスを入力します。
- SettingsセクションのScopeで、すべてのユーザーとグループを同期するか、アプリケーションに割り当てられたユーザーとグループだけを同期するかを選択します。アプリケーションに割り当てられたユーザーとグループだけを同期する場合は、左側のナビゲーションのUsers and groupsセクションで割り当てを行う(英語)必要があります。
- Provisioning StatusがOnに設定されていることを確認します。
Microsoft Entra IDのプロビジョニング設定 - Saveを選択します。
- アプリケーションのProvisioningページに戻ります。上部のメニューで、Start Provisioningを選択します。
プロビジョニング後に問題が発生した場合は、アプリケーションのOverviewページを開き、Restart Provisioningを選択します。
Tailscaleアプリケーションへのアクセスを制限する
既定では、Entraディレクトリサービスのすべてのユーザーが、Tailscaleアプリにアクセスできます。
Tailscaleにアクセスできるユーザーを制御するには、Enterprise Applications > Tailscale > Propertiesに移動し、Assignment Required?をYesに設定します。
この設定を有効にすると、Tailscaleアプリケーションに割り当てられたユーザーだけがアクセスできるようになります。
サポートされている属性マッピング
Tailscaleは、コアの「User」と「Group」SCIMリソースのSCIM属性に対応しています。
Tailscaleの機能で使うのは次の属性だけで、その他の属性は使われずに保存されます。
| 属性 | SCIM属性の種類 | Tailscaleでの扱い |
|---|---|---|
externalId | Common | 必須 |
userName | Core user | 必須 |
emails | Core user | 任意 |
name.givenName | Core user | 任意 |
name.familyName | Core user | 任意 |
name.formatted | Core user | 任意 |
displayName | Core user | 任意 |
active | Core user | 任意 |
preferredLanguage | Core user | 任意 |
userNameは、ユーザーがtailnetへのサインインに使うメールアドレスに対応付ける必要があります。
photosは同期できる属性ではありませんが、ログイン時にユーザーに設定されます。
TailscaleはSCIMのEnterprise User Schema Extensionに対応していません。
これらの拡張のユーザー属性を追加で指定すると、リクエストは失敗します。
tailnetポリシーファイルでMicrosoft Entra IDのグループを参照する
tailnetポリシーファイルでは、人間が読める名前か、Microsoft Entra IDのグループIDのどちらかを使って、Microsoft Entra IDのグループを参照できます。
例えば、次のように記述します。
{
"grants": [
{
"src": ["group:groupname@example.com"],
"dst": ["*"],
"ip": ["*"]
},
{
"src": ["group:all employees@example.com"],
"dst": ["autogroup:self"],
"ip": ["*"]
},
{
"src": ["group:3ac067a2-f424-87b0-14a3-926482d83980@example.com"],
"dst": ["tag:logging"],
"ip": ["*"]
}
]
}
Microsoft Entra IDのグループにネストされたグループ(英語)が含まれている場合、そのグループをアクセス制御で使うと、Tailscaleは5階層下までのサブグループのメンバーを含めます。
5階層を超えてネストされたメンバーは含まれません。
Microsoft Entra IDのグループ名を変更する場合
tailnetポリシーファイルで(グループIDではなく)グループ名を使っている場合、Microsoft Entra IDでグループの名前を変更すると、そのグループに対するTailscaleのアクセスルールは適用されなくなります。
Tailscaleはフェイルクローズ(アクセスを拒否する側に倒す動作)となり、管理コンソールにエラーメッセージが表示されます。
グループの名前を変更した場合は、tailnetポリシーファイルのグループを新しいグループ名に更新してください。
意図しない変更だった場合は、Microsoft Entra IDで名前の変更を元に戻すこともできます。
tailnetポリシーファイルでグループIDを使っている場合は、グループの名前を変更しても、そのグループに対するTailscaleのアクセスルールには影響しません。
プロビジョニングを無効にする
この手順を行うには、Microsoft Azureポータルの管理者ロールが必要です。
Microsoft Entra IDでの作業
- Microsoft Azureポータルにログインします。
- Microsoft Entra IDを選択します。
- 左側のナビゲーションのManageで、Enterprise applicationsを選択します。
- Tailscaleアプリケーションを検索して選択します。
- Manageで、Propertiesを選択します。
- Deleteを選択し、Yesを選択します。
Tailscaleでの作業
- 管理コンソールのUser managementページのSCIM Provisioningで、Disable provisioningを選択し、確認のためにもう一度Disable provisioningを選択します。
- 管理コンソールのAccess controlsページで、プッシュされなくなったグループを参照しないようにルールを更新します。
- Microsoft Entra IDで使っていたSCIM APIキーを残しておく必要がない場合は、キーを失効させます。
既知の制限事項
- Microsoft Entra IDは、40分ごとにTailscaleと同期します。これはMicrosoft Entra IDの制限(英語)で、この間隔は変更できません。オフボーディングの一環などでユーザーの同期を強制するには、Microsoft Entra IDのオンデマンドプロビジョニング(英語)を使います。これにより、30秒以内にユーザーが同期されるはずです。
- Microsoft Entra IDでは、ユーザーの論理削除から物理削除まで約30日かかります。この間隔は変更できません。
- Microsoft Entra IDは、ユーザーが論理削除の状態からアクティブに戻ったときに、動的メンバーシップグループのエントリを自動的には復元しません(英語)。これが問題になる場合は、Entra IDのアプリのプロビジョニングページからRestart provisioningを実行して、強制的に更新できます。
- TailscaleはSCIMのEnterprise User Schema Extensionに対応していません。これらの拡張のユーザー属性を追加で指定すると、リクエストは失敗します。
- Tailscaleのグループは、tailnetポリシーファイルで小文字として解析されるため、Microsoft Entra IDでの大文字・小文字の違いは無視されます。
- Microsoft Entra IDのグループには、
@記号を含められません。 - tailnetポリシーファイルでグループ名を参照している場合、グループの名前が変わると、そのグループに対するアクセス制御ポリシーは適用されなくなり、Tailscaleはフェイルクローズとなります。代わりにtailnetポリシーファイルでグループIDを使っていれば、グループの名前を変更しても、そのグループに対するTailscaleのアクセスルールには影響しません。
- Microsoft Entra IDでリンクを解除され、Tailscaleに保持されているグループは、Tailscaleに同期されません。
- グループ同期を使って、Tailscaleの管理者やその他のユーザーロールを割り当てることはできません。
原文:User & group provisioning for Microsoft Entra ID(Tailscale公式ドキュメント)