5.8. Azure (Office365) Active Directory バックエンド

5.8.1. 概要

unicornidm.conf, templates/<name>.py

5.8.2. 説明

バックエンドセクションのうち、 typeazure となっているバックエンドは、 Azure Active Directory ドメインコントローラー (Azure AD) への接続に関する設定を行います。

各バックエンドには必ずテンプレートファイルを用意する必要があります。 テンプレートファイルとは Unicorn ID Manager の任意属性 (フロントエンド属性) をバックエンド固有の属性 (バックエンド属性) にマッピングするためのものです。

5.8.3. パラメーター

type
バックエンドのタイプを指定します。
domain
接続する Azure AD のドメイン名を指定します。
bind_user
Azure AD へ接続する際に使用するクライアント ID を指定します。
bind_password_file
Azure AD へ接続するクライアント ID のパスワード情報を格納したファイルパスを指定します。
backend_primary_key_user
ユーザーを一意に特定するための Azure バックエンド属性を指定します。 デフォルト値は userPrincipalName です。
backend_primary_key_group
グループを一意に特定するための Azure バックエンド属性を指定します。 デフォルト値は displayName です。
require_immutaleId
ユーザー登録時に、 immutableId を登録するかどうかを指定します。 デフォルト値は yes (immutableId を登録する) です。

5.8.4. テンプレート

以下は、 azure のテンプレートファイルの例です。

User = {
    "userPrincipalName": userName,
    "immutableId": default(immutableId),
    "displayName": default(displayName, "%(familyName)s %(givenName)s"),
    "surname": familyName,
    "givenName": givenName,
    "mailNickname": userName,
    "accountEnabled": default(active, True),
    "passwordProfile": {
      "password": password,
      "forceChangePasswordNextLogin": default(forceChangePasswordNextLogin, True),
    },
    "passwordPolicies": "DisablePasswordExpiration,DisableStrongPassword",
    "usageLocation": default(usageLocation, "JP"),
    "assignedLicenses": default(azureLicense),
}


Group = {
    "displayName": groupName,
    "mailNickname": groupName,
    "mailEnabled": False,
    "securityEnabled": True,
    "description": default(description),
}

注意すべき点は以下のとおりです。

  • User の辞書には必ず userPrincipalName バックエンド属性を付与すること
  • Group の辞書には必ず displayName バックエンド属性を付与すること

5.8.5. azure バックエンド特有のバックエンド属性

azure バックエンドで利用可能なバックエンド属性は以下の URL を参考にしてください。

https://msdn.microsoft.com/Library/Azure/Ad/Graph/api/entity-and-complex-type-reference#userentity

ここでは、上の URL に記載のない、 azure バックエンド特有の バックエンド属性の説明をします。

assignedLicenses

assignedLicenses バックエンド属性は、ユーザーに対して、 Office365 等の利用に必要なライセンスを付与、あるいは、 すでに割り当てられているライセンスを削除するためのものです。 このバックエンド属性に指定可能なものは skuPartNumber と呼ばれる属性値です。 たとえば、 STANDARDPACK のような、値を指定します。 ライセンスは複数付与することができますので、 unicornidm.conf(5)assignedLicenses に対応するフロントエンド属性を multi_valued_attributes に含めるようにしてください (デフォルトの設定ファイルでは azureLicense として含められています) 。

ここで、 azure バックエンドのライセンスについて説明します。 Azure AD では、ひとつのライセンスに複数のプランが紐付いています。 たとえば、以下のように STANDARDPACK には 3 つのプランが紐付き、 OFFICESUBSCRIPTION_FACULTY には 2 つのプランが紐付いています (以下の図は実際のライセンス体系と異なります) 。

ライセンス                   プラン

STANDARDPACK
    |
    +----------------------- EXCHANGE_S_STANDARD
    |
    +----------------------- YAMMER_ENTERPRISE
    |
    +----------------------- MCOSTANDARD

OFFICESUBSCRIPTION_FACULTY
    |
    +----------------------- OFFICESUBSCRIPTION
    |
    +----------------------- ONEDRIVESTANDARD

ライセンスを付与する際に、一部のプランを無効にしたい場合があります。 その時は STANDARDPACK/YAMMER_ENTERPRISE:MCOSTANDARD のように、 <ライセンス名>/<プラン名>:<プラン名>:... と指定します。