4. 各バックエンドを利用するための準備

ここでは Unicorn ID Manager で各バックエンドを利用する前に 実施する必要のある作業について説明します。

ここでは、以下のバックエンドの事前準備の作業について記載しています。

  • Windows Server の Active Directory
  • Google G Suite (旧名 Google Apps)
  • Azure Active Directory (Office365)

4.1. Windows Server の Active Directory

Windows Server の Active Directory をバックエンドにするためには、 Windows Server に 証明書サービス をインストールし、 インストール後に Windows Server の再起動が必要となります。

証明書サービス は PowerShell から以下のコマンドを 実行することでインストールできます。 証明書の有効期限等は運用ポリシーに合わせて任意の値を指定してください。

PS > Add-WindowsFeature ADCS-Cert-Authority -IncludeManagementTools
PS > Install-AdcsCertificationAuthority -CAType EnterpriseRootCA `
     -ValidityPeriod Years -ValidityPeriodUnits 10 `
     -HashAlgorithmName SHA256 `
     -KeyLength 2048

4.2. Google G Suite

Google G Suite (旧名 Google Apps) をバックエンドにするためには、 Google API コンソールでサービスアカウントにキーを作成し、 Google 管理コンソールでサービスアカウントのクライアント ID に 対して API のアクセスを承認する必要があります。

以下に作業の概要を示します。

  1. Google API コンソール
    1. Google API コンソールを開く。
    2. 組織 (G Suite ドメイン) にプロジェクトを作成する。
    3. プロジェクトの Admin SDK の API を有効にする。
    4. プロジェクトにサービスアカウントを作成する。
    5. サービスアカウントの G Suite ドメイン全体の委任を有効にする。
    6. サービスアカウントのサービスアカウントキー (JSON キー) を作成する。
    7. サービスアカウントのクライアント ID を控える。
  2. Google 管理コンソール
    1. セキュリティの詳細設定の API クライアントのアクセス管理で クライアント ID に対して API の範囲を承認する。

以下に作業の詳細を示します。なお、ここではすでに Google G Suite の 管理者アカウントが設定済みであることを前提とします。

4.2.1. API サービスアカウントとキーの作成

  1. Google API コンソール https://console.developers.google.com/ に アクセスして、管理権限を持つ Google アカウントでログインする。
    • ほかの Google アカウントでログイン済みの場合は、ページ 上部メニューバー右端のアイコンをクリックして別のアカウントを 選択するか、アカウントを追加 ボタンを押して追加する。
  2. プロジェクトを作成する。名前は任意。
    • ページ上部メニューバーの組織 (G Suite ドメイン) 選択プルダウン メニューからドメインを選択してから、同じくページ上部メニューバー 内のプロジェクト選択プルダウンメニューを開いて プロジェクトを作成 を開く。
  3. プロジェクトの Admin SDK API を有効にする。
    • ページ上部メニューバー左のハンバーガーメニューから API Manager を開き、左ペインの ライブラリ を開き、Google Apps API 節の Admin SDK を開き、有効にする を実行する。
  4. プロジェクトにサービスアカウントを作成する。名前は任意、 役割りは不要、G Suite ドメイン全体の委任を有効にする チェックボックスを有効にして作成。
    • ページ上部メニューバー左のハンバーガーメニューから IAM と管理 を開き、左ペインの サービス アカウント を開き、 サービス アカウントを作成 を実行する。
  5. 既存のサービスアカウントの G Suite ドメイン全体の委任を有効にする 場合は、IAM と管理サービスアカウント 画面の サービスアカウント一覧右のハンバーガーメニューから 編集 する。
  6. サービスアカウントのサービスアカウントキーを作成する。
    • IAM と管理サービスアカウント 画面のサービスアカウント 一覧右のハンバーガーメニューから キーを作成 する。 キーのタイプJSON を選択する。
    • 作成 するとサービスアカウントキー (JSON キー) がダウンロード されるので、Unicorn IDM の設定ディレクトリ下に保存する。 このファイルには Google G Suite の API を利用するための秘密鍵が 格納されているため、 Unicorn ID Manager を実行するプロセス以外 から参照できないようにする。。
  7. サービスアカウントのクライアント ID を控える。
    • IAM と管理サービスアカウント 画面のサービスアカウント 一覧右の オプション 欄の クライアント ID を表示 を参照する。

4.2.2. Google G Suite ドメインの権限を API に委譲

  1. Google 管理コンソール http://admin.google.com/ にアクセスして、 管理権限を持つ Google アカウントでログインする。

  2. ホーム画面もしくは ページ上部メニューバー左のハンバーガーメニュー から セキュリティ を開き、詳細設定 を開き、 認証 節の API クライアント アクセスを管理する を開く。

  3. クライアント名 欄に先に控えたサービスアカウントのクライアント ID、 1 つ以上の API の範囲 欄に下記の内容を入力して 承認 ボタンを押す。

    https://www.googleapis.com/auth/admin.directory.user,https://www.googleapis.com/auth/admin.directory.group,https://www.googleapis.com/auth/admin.directory.orgunit
    

4.3. Azure Active Directory (Office365)

Azure Active Directory (Azure AD) をバックエンドにするためには、 以下に示す手順を SKU の名前を取得 以外をすべて実施してください。

SKU の名前を取得 はユーザーにライセンスを付与する際に必要な情報を取得する ために必要です。

なお、ここではすでに Azure AD の 管理者アカウントが設定済みで、 かつ Azure AD の言語設定が日本語であることを前提とします。

4.3.1. アプリケーション ID の作成

  1. https://portal.azure.com/ にアクセス
  2. 左ペインの Azure Active Directory をクリック
  3. 左ペインの アプリの登録 をクリック
  4. 画面上部の +追加 をクリック
  5. 下記の項目を入力し、画面下部の 作成 をクリック
    • 名前 : unicornidmなど任意の名前を入力
    • アプリケーションの種類 : 「Webアプリ/API」を選択
    • サインオンURL : http://localhost などを入力
  6. 作成したアプリケーション名をクリック
    • 指定した名前やアプリケーションの種類、ホームページが表示される
  7. 画面上部に表示されている 「アプリケーションID」の 最後の・・・ をクリックすると、 アプリケーションIDをコピー可能
    • アプリケーションIDは、UnicornIDMのクライアントIDに設定
    • /opt/osstech/etc/unicornidm/unicornidm.conf の azureバックエンドでの bind_user パラメータに設定
  8. 画面の 「設定」 - 「API アクセス」 - 「キー」 をクリック後、 「キー」 セクションにて下記を入力後、 画面上部にある 「保存」 アイコンをクリック
    • 「キーの説明」: 任意の説明を入力
    • 「時間の選択」:「期限なし」を選択
    • 保存後、キーの値が表示されるため、コピーして任意のファイルにペーストして厳重に保存 (以降は表示されなくなります)
  9. 保存したキーの値を UnicornIDMのシークレットキーとして設定
    • /opt/osstech/etc/unicornidm/unicornidm.conf の azureバックエンドでの bind_password_file パラメータで指定しているファイルに記載

4.3.2. アプリケーション ID にロールを割り当て

  1. Windows 端末にて PowerShell 用の Azure AD モジュールをインストール (http://msdn.microsoft.com/library/azure/jj151815.aspx からダウンロード)

  2. PowerShell を開き、以下のコマンドを実行 (<APPNAME>アプリケーション ID の作成 の 3. で作成した名前)

    $APPNAME = "<APPNAME>"
    Import-Module MSOnline
    Connect-MsolService
    Add-MsolRoleMember -RoleName "User Account Administrator" -RoleMemberType ServicePrincipal -RoleMemberObjectId (Get-MsolServicePrincipal -SearchString $APPNAME).ObjectId
    

4.3.3. SKU の名前を取得

  1. Windows 端末にて PowerShell 用の Azure AD モジュールをインストール (http://msdn.microsoft.com/library/azure/jj151815.aspx からダウンロード)

  2. PowerShell を開きサブスクリプションごとに割り当てられている SKU の名前 を取得

    Import-Module MSOnline
    Connect-MsolService
    Get-MsolAccountSku | Select-Object -Property SkuPartNumber
    
  3. 出力された情報のうち SkuPartNumber の列以下の情報を控える (たとえば、以下のような出力が得られます)

    SkuPartNumber
    -------------
    STANDARDPACK