Microsoft Entra ID にエンタープライズ アプリケーションを 1 つ作り、SSO(OpenID Connect)と、SCIM 2.0 の自動のプロビジョニングを設定します。
共通の値と、うまくいかないときの見る所は、会社の ID 基盤とつなぐのページにあります。画面の名前は、Microsoft のものを[](2026 年 10 月時点の公式の手順の日本語の表記)、Aiyori のものを「」で書いています。
要るもの
- Microsoft Entra 管理センター(https://entra.microsoft.com)で、アプリケーション管理者以上の役割。
- SSO(OpenID Connect)は、Entra ID の無料の範囲で使えます。
- SCIM(自動のプロビジョニング)は、ギャラリーにないアプリなので、Entra ID P1 以上が要ります(Microsoft 365 E3・E5、Business Premium などに含まれます)。
- Aiyori の組織の管理者が、講師の画面の「設定」→「会社の ID 基盤とつなぐ」を開けること。
1 つのアプリで、SSO と SCIM の両方を設定します。エンタープライズ アプリケーションを作ると、同じ名前の[アプリの登録]もできます。SSO はそちらで、SCIM はエンタープライズ アプリケーションの側で設定します。
1. アプリを作る
- Entra 管理センター →[Entra ID]→[エンタープライズ アプリケーション]→[+ 新しいアプリケーション]→[+ 独自のアプリケーションの作成]。
- 名前に Aiyori と入れ、[ギャラリーに見つからないその他のアプリケーションを統合します (ギャラリー以外)]を選んで[作成]。
- 作ったアプリの[プロパティ]で、[割り当てが必要ですか?]を[はい]にします(割り当てた人だけがログインできます)。マイ アプリにタイルを置くときは、[ホーム ページの URL]に https://app.aiyori.app/
api/ web/ sso/ start?code=(組織コード)を入れます。最後に[保存]。
2. SSO(OpenID Connect)
- [Entra ID]→[アプリの登録]→[すべてのアプリケーション]→ 1 で作った Aiyori を開きます。
- [概要]の[ディレクトリ (テナント) ID]と[アプリケーション (クライアント) ID]を控えます。
- [認証]→[+ プラットフォームを追加]→[Web]→ リダイレクト URI に https://app.aiyori.app/
api/ web/ sso/ callback を入れて[構成]。暗黙的な許可の 2 つのチェックは入れません(Aiyori は認可コードと PKCE を使います)。 - [証明書とシークレット]→[クライアント シークレット]→[+ 新しいクライアント シークレット]→ 説明は Aiyori、有効期限は 12 か月がおすすめ(最長 24 か月)→[追加]→[値]を控えます(この画面でしか見えません)。
- [トークン構成]→[+ オプションの要求を追加]→[ID]→ email にチェック →[追加]。Microsoft Graph の email のアクセス許可を有効にするかを聞かれたら、チェックして追加します。
- [API のアクセス許可]は、既定の User.Read のままでかまいません(Aiyori が求めるのは openid email profile だけで、管理者の同意は要りません)。
- Aiyori の講師の画面 →「設定」→「会社の ID 基盤とつなぐ」→「SSO」に下の表の値を入れて、「保存する」。
- エンタープライズ アプリケーション → Aiyori →[ユーザーとグループ]→[+ ユーザーまたはグループの追加]で、試す人を 1 人割り当てます。
- その人で、Aiyori のログイン画面 →「会社のアカウントでログイン」→ 組織コード → Microsoft のログイン → Aiyori に戻れば、つながっています。SCIM をまだつないでいないときは、その人を先に受講者として登録しておくか(会社のメールアドレスを入れる)、「まだ登録されていない人が来たら、受講者として登録する」を入れます。
- 全員が入れることを確かめてから、必要なら「暗証番号のログインを止めて、会社のアカウントだけにする」を入れます。
- 発行元の URL(Issuer)
- https://login.microsoftonline.com/
(ディレクトリ (テナント) ID)/v2.0 - クライアント ID
- アプリケーション (クライアント) ID
- クライアントシークレット
- 4 で控えた[値]([シークレット ID]ではありません)
- 受け付けるメールアドレスのドメイン
- 会社のメールのドメイン(例 example.co.jp)。onmicrosoft.com の人も入れるなら、それも 1 行。トークンに email が無い人は UPN のドメインで確かめるので、UPN のドメインがメールと違うなら、それも入れます。
シークレットの期限が切れると、全員が会社のアカウントで入れなくなります。期限の前に新しいシークレットを作り、Aiyori の画面で入れ替えてください。IT 担当の予定に入れておくと安心です。
発行元の common・organizations・consumers と、末尾の /v2.0 の無い形は、保存のときに理由つきで断ります(どのテナントの人でも通ってしまうため)。テナント ID の代わりに contoso.onmicrosoft.com のようなテナントの名前を入れたときは、保存のときにテナント ID の形にそろえます。
UPN とメールアドレスが違う会社でも、SCIM で入れた人は UPN でも見つかるので、5 の email の追加は無くても動きます。SCIM を使わず、名簿のまとめて登録や自動の登録で入れるときは、5 で email を足してください(足さないと、UPN のアドレスで別の人として登録されます)。
3. SCIM(自動のプロビジョニング)
- Aiyori の「会社の ID 基盤とつなぐ」→「SCIM」で、「鍵の名前」に Entra ID と入れて「鍵を作る」→ 出てきた鍵を控えます(この画面でしか見えません)。
- エンタープライズ アプリケーション → Aiyori →[プロビジョニング]→[+ 新しい構成](古い画面では[作業の開始]→ プロビジョニング モードを[自動])。
- [管理者資格情報]で、認証方法は[ベアラー認証]、[テナントの URL]に https://app.aiyori.app/
api/ scim/ v2、[シークレット トークン]に 1 の鍵を入れます。 - [テスト接続]→ 成功したら[作成](または[保存])。Entra ID は、いない人を 1 人探して、空の一覧が返るかを見ます。
- [属性マッピング]は、既定のままでかまいません(見る所は下の表)。
- [設定]で、範囲は[割り当てられたユーザーとグループのみを同期する](既定)のまま。同期が止まったときの通知メールに IT 担当のアドレスを入れ、誤削除の防止を入れます。
- [ユーザーとグループ]で、Aiyori に入れるグループ(部署・入社年次など)を割り当てます。
- [オンデマンドでプロビジョニング]で 1 人だけ送り、Aiyori の受講者の一覧に出ることを確かめます。
- [プロビジョニングの開始]。はじめの 1 回は人数に応じて時間がかかり、そのあとは約 40 分ごとに同期します。結果は[プロビジョニング ログ]で見られます。
| 属性(Aiyori) | Entra ID の値(既定) | Aiyori での使い方 |
|---|---|---|
| userName | userPrincipalName | 送られた UPN をそのまま持って返します(Entra ID が同じ人を探す鍵)。UPN とメールアドレスが違う会社でも、変えなくてかまいません。 |
| emails[type eq "work"].value | Aiyori で人を見分ける、会社のメールアドレスになります(SSO の email・名簿のまとめて登録と同じ値)。mail が空の人は UPN を使います。 | |
| active | IsSoftDeleted を使う Switch の式 | 無効にした人・割り当てを外した人が、ログインできなくなります。 |
| externalId | mailNickname | objectId に変えてもかまいません(名前が変わっても変わりません)。 |
| グループ | Provision Microsoft Entra ID Groups を有効 | 部署などのグループが、Aiyori のグループになります。グループを使わないなら、無効にします。 |
| 部署・社員番号など | (既定のまま) | 送られても使いません(消さなくてかまいません)。 |
4. つないだ日に確かめること
- 割り当てた 1 人が、会社のアカウントで入れる。割り当てていない人は、Microsoft の画面で止まる(割り当てが必要にしてあるため)。
- オンデマンドで送った人が Aiyori の受講者に出て、グループに入っている。
- その人の割り当てを外して、もう一度オンデマンドで送ると、Aiyori で「会社の設定で停止中」になり、ログインできない。戻すと入れる。
- シークレットの期限を、IT 担当の予定に入れた。
Entra ID の決まりごと
- 発行元はテナントごとです。ID トークンの iss と tid(テナント ID)の両方が、登録したテナントと同じでなければ入れません(ほかの会社のテナントの人は通りません)。
- Entra ID は email_verified を送りません。Aiyori は、発行元・テナント・受け付けるドメインで絞ったうえで、送られた email(無ければ UPN)を使います。
- SCIM の PATCH の "op": "Replace"(大文字始まり。Add・Remove も)、文字列の "False"、path の無い PATCH も受け付けます。本文の形は application/scim+json です。
- 人は filter=userName eq(UPN。大文字と小文字は問いません)でも externalId でも探せます。グループのメンバーの付け外し(members の Add・Remove)も受け付けます。
- 同期は約 40 分ごとです。急ぐときは、オンデマンドで送ります。
- SCIM の鍵に期限はありません。年に 1 回などで新しい鍵を作って Entra ID に入れなおし、古い鍵を Aiyori で「無効にする」にします。
- Microsoft Entra SCIM Validator の項目のうち、削除した人を GET すると 404 になる、の 1 つだけは合わせていません。Aiyori は削除でも記録を消さず、停止にするためです。ふだんの同期は、割り当てを外すと active: false を送るので、差し支えありません。
