# SAML認証

本章では、ULIZAプロダクトアカウントのSAML認証について説明します。

# 概要

SAML(Security Assertion Markup Language)とは、異なるドメイン間で認証情報を共有するための標準仕様です。SAML 2.0に対応したIdentity Provider(以下、IdPといいます)に対し、ULIZAをService Provider(以下、SPといいます)として登録することで、IdPの認証情報を使用したULIZA管理画面へのシングルサインオンが可能になります。

IdPにより認証された使用者は、特定のULIZAプロダクトアカウントにおける一時的なチームメンバーとして振る舞います。ULIZAプロダクトアカウントに事前にチームメンバーを登録しておく必要はありません。

補足

ひとつのULIZAプロダクトアカウントに複数のIdPを関連付けることができます。逆に、ひとつのIdPに複数のULIZAプロダクトアカウントを関連付けることもできます。この場合、ULIZAプロダクトアカウントごとにSP Entity IDが異なるため、IdPに複数のアプリケーションとして登録する(ポータル画面に複数のULIZAアイコンが表示される)形になります。

# SAML認証の流れ

ULIZAはSP-initiated SSOとIdP-initiated SSOをサポートします。

# SP-initiated SSO

使用者が最初にULIZA管理画面にアクセスすることから始まる認証方式です。以下に基本的なシーケンスを示します。

SP-initiated SSOを行うには、ULIZAログイン画面で「SSOでログイン」をクリックします。

ログインIDを入力して「次へ」ボタンをクリックすると、ULIZA管理画面にログインできます。

補足

指定されたアカウントに複数のIdPが関連付けられている場合は、認証に使用するIdPを選択する画面が表示されます。

# IdP-initiated SSO

使用者がIdPが提供するポータル画面を経由してULIZAにログインする認証方式です。以下に基本的なシーケンスを示します。

使用者はIdPが提供するポータル画面でULIZAのアイコンをクリックすることで、ULIZA管理画面にシングルサインオンできます(下図はIdPとしてOktaを利用している場合のダッシュボード画面例)。

# SAML認証仕様

# 認証フロー

ULIZAは以下の認証フローをサポートします。

  • SP-initiated SSO
  • IdP-initiated SSO

# SAMLバインディング

ULIZAは以下のSAMLバインディングをサポートします。

  • HTTP POST Binding

# Name IDの形式

ULIZAは以下のName IDの形式を要求します。

  • urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

# SAMLリクエストの署名

ULIZAはSAMLリクエストの署名をサポートしません。

# SAMLレスポンスの署名

SAMLアサーションには署名が必須です。SAMLレスポンスの署名は任意です。

# ダイジェストアルゴリズム

  • http://www.w3.org/2000/09/xmldsig#sha1
  • http://www.w3.org/2001/04/xmlenc#sha256
  • http://www.w3.org/2001/04/xmlenc#sha512

# 署名検証アルゴリズム

  • http://www.w3.org/2000/09/xmldsig#rsa-sha1
  • http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
  • http://www.w3.org/2001/04/xmldsig-more#rsa-sha512
  • http://www.w3.org/2000/09/xmldsig#hmac-sha1

# 正規化アルゴリズム

  • http://www.w3.org/2001/10/xml-exc-c14n#
  • http://www.w3.org/2001/10/xml-exc-c14n#WithComments
  • http://www.w3.org/2000/09/xmldsig#enveloped-signature

# 設定方法

SAML認証を設定するには、以下の手順に従います。

  1. SPメタデータを取得する: ULIZA管理画面からULIZAのSPメタデータを取得します。
  2. IdPにULIZAを登録する: 取得したメタデータを使用してIdPにULIZAをSPとして登録します。
  3. ULIZAにIdPを登録する: IdPから取得したメタデータを使用してULIZAにIdPを登録します。

# SPメタデータを取得する

  1. ULIZAのアカウント設定 (opens new window)から「SAMLプロバイダの管理」画面を開きます。

    注意

    SAML認証の利用可否は契約により異なります。サイドバーに「SAMLプロバイダの管理」メニューが表示されていない場合は、SAML認証は利用できません。弊社までお問い合わせください。

  2. 「Service Providerメタデータの表示」ボタンをクリックします。

  3. 表示される「SP Entity ID」および「SSO URL (ACS URL)」の値をメモしておきます。

    補足

    IdPがメタデータXMLのアップロードに対応している場合(Azure Active Directoryなど)は、上記の値をメモしておく代わりに「メタデータXMLのダウンロード」ボタンをクリックして、設定値をXMLファイルとしてダウンロードできます。

# IdPにULIZAを登録する

以下の設定例を参考に設定を行います。

# ULIZAにIdPを登録する

  1. ULIZAのアカウント設定 (opens new window)から「SAMLプロバイダの管理」画面を開きます。

    注意

    SAML認証の利用可否は契約により異なります。サイドバーに「SAMLプロバイダの管理」メニューが表示されていない場合は、SAML認証は利用できません。弊社までお問い合わせください。

  2. 「SAMLプロバイダの登録」ボタンをクリックします。
  3. 「基本情報」セクションについて、以下のように設定します。
    項目 設定値
    表示名 任意の名前(例:「Auth0」「Azure AD」など)を入力
    Identity Providerメタデータ IdPから取得したメタデータXMLをアップロード

  4. 「保存」ボタンをクリックします。

# 権限制御

IdPにより認証された使用者には、関連付けられているULIZAプロダクトアカウントに付与されているすべての権限(ただし、チームメンバーやサブアカウントの管理権限など、「ULIZAプロダクト共通」グループに含まれる権限は除く)がデフォルトで付与されます。この挙動を変更するには、以下に示すSAML AttributeをSAMLレスポンスに含めることで、権限設定をULIZAに渡すことができます。

  • Namehttps://account-api.p.uliza.jp/v1/saml/attributes/permissions
  • Value : 下表に示す権限表現文字列(コンマ区切りで複数指定可)
    権限 権限表現文字列
    すべての権限(ULIZAプロダクト共通を含む) *
    ULIZA VMS (Cloud)のすべての権限 manager:*
    ULIZA VMS (Cloud)のすべての取得系の権限 manager:GET:*
    ULIZA VMS (Cloud)のすべての登録系の権限 manager:POST:*
    ULIZA VMS (Cloud)のすべての更新系の権限 manager:PUT:*
    ULIZA VMS (Cloud)のすべての削除系の権限 manager:DELETE:*
    ULIZA En-Cluster (Cloud)のすべての権限 encoder:*
    ULIZA Player (Cloud)のすべての権限 player:*
    ULIZA Video Analytics (Cloud)のすべての権限 analyticsv2:*
    ULIZA IP Broadcaster (Cloud)のすべての権限 ipb:*
    ULIZA Live Event Managerのすべての権限 liveEventManager:*
    ULIZA Sidetalkのすべての権限 sidetalk:*

    補足

    上表に記載のない権限についても設定可能な場合があります。詳しくはお問い合わせください。

IdPの具体的な設定方法については、IdPの提供元にお問い合わせください。

# 設定例

ULIZA VMS (Cloud)のすべての権限とULIZA Sidetalkのすべての権限を付与するには、SAMLレスポンスに以下のようなSAML Attributeを含める必要があります。

<Attribute Name="https://account-api.p.uliza.jp/v1/saml/attributes/permissions">
  <AttributeValue>manager:*,sidetalk:*</AttributeValue>
</Attribute>

# IdP設定例

注意

IdP設定例は2022年8月時点の情報に基づき作成しています。

# Auth0の場合

  1. Auth0 Dashboard (opens new window) を開きます。
  2. 左側のメニューから「Applications>Applications」をクリックしてアプリケーション一覧画面を開きます。
  3. 「Create Application」ボタンをクリックします。

  4. 「Name」に任意のアプリケーション名(例:「ULIZA」)を入力し、「Single Page Web Applications」を選択して「Create」ボタンをクリックします。

  5. 「Addons」タブを開き、「SAML2 WEB APP」をクリックします。

  6. 「Settings」タブを開き、「Application Callback URL」にこちらでメモしておいた「SSO URL (ACS URL)」の値を入力します。また、「Settings」には以下のようなJSON文字列を入力します。ただし、audience の値はこちらでメモしておいた「SP Entity ID」の値に書き換える必要があります。
    {
      "audience": "https://account-api.p.uliza.jp/v1/saml/accounts/xxxx/admin", // 書き換えが必要
      "nameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
      "nameIdentifierProbes": [
        "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
      ]
    }
    

  7. ダイアログボックス最下部にある「Enable」ボタンをクリックします。

  8. 「Usage」タブをクリックします。
  9. 「Identity Provider Metadata」の右にある「Download」をクリックして、メタデータXMLをダウンロードしておきます。

引き続きULIZA側での設定を行います。

補足

ULIZA側での設定が完了すると「Identity Provider Login URL」にアクセスすることでULIZA管理画面にシングルサインオンできるようになります。

# Azure Active Directoryの場合

  1. Azureポータル (opens new window) にサインインします。
  2. 「Azure Active Directory」をクリックします。

  3. 左側のメニューから「エンタープライズ アプリケーション」をクリックします。

  4. 左側のメニューから「すべてのアプリケーション」をクリックし、画面上部にある「新しいアプリケーション」をクリックします。

  5. 「独自のアプリケーションの作成」をクリックします。

  6. 任意のアプリケーション名(例:「ULIZA」)を入力し「作成」ボタンをクリックします。

  7. 「シングル サインオンの設定」をクリックします。

  8. 「SAML」をクリックします。

  9. 「メタデータ ファイルをアップロードする」をクリックします。

  10. こちらでダウンロードしておいたメタデータXMLファイルを選択して「追加」ボタンをクリックします。

  11. 「保存」ボタンをクリックします。

  12. 「フェデレーション メタデータXML」の右にある「ダウンロード」をクリックして、メタデータXMLをダウンロードしておきます。

続いて、ULIZAにユーザーを割り当てます。

  1. 左側のメニューから「ユーザーとグループ」をクリックします。
  2. 画面上部にある「ユーザーまたはグループの追加」をクリックします。

  3. 「ユーザー」の下にある「選択されていません」をクリックします。

  4. ULIZAへのアクセス権限を割り当てるユーザーをクリックして「選択」ボタンをクリックします。

  5. 「割り当て」ボタンをクリックします。

  6. 割り当てられたユーザーのマイ アプリ (opens new window) にULIZAへのリンクが表示されることを確認します。

    注意

    この時点ではULIZA側での設定が完了していないため、ULIZAへのリンクをクリックするとエラーが発生します。

引き続きULIZA側での設定を行います。

# CloudGate UNOの場合

  1. CloudGate UNO管理者サイト(CloudGate UNO Admin Site)を開きます。
  2. 左側のメニューから「設定>サービスプロバイダー」をクリックしてサービスプロバイダー一覧画面を開きます。
  3. 一覧画面上部にある「サービスプロバイダー追加」ボタンをクリックします。

  4. 検索ボックスに「xxxxxxForSaml」と入力して「検索」ボタンをクリックし、表示されたCustom Serviceの右上にある「追加」をクリックします。

  5. 任意の表示名(例:「ULIZA」)を入力して「追加」ボタンをクリックします。

  6. サービスプロバイダの「一般設定」画面が表示されます。必要に応じて「サービスの選択状態」や「ロゴ画像」などを設定し、「保存」ボタンをクリックします。

  7. 「シングルサインオン設定」タブをクリックします。

  8. 「シングルサインオンの設定」および「シングルサインオフの設定」セクションについて、以下のように設定します。
    項目 設定値
    IdP-initiated SSO 「On」に設定
    SP-initiated SSO 「On」に設定
    Issuer / Provider name / Entity ID こちらでメモしておいた「SP Entity ID」の値を入力
    Assertion consumer service URL こちらでメモしておいた「SSO URL (ACS URL)」の値を入力
    RelayState 何も入力しない
    Name IDの形式 「urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress」を選択
    リクエストへの署名 「Off」に設定(変更できません)
    レスポンスへの署名 「On」に設定
    アサーションへの署名 「On」に設定
    サインオフ方法 「なし」を選択

  9. 「保存」ボタンをクリックします。
  10. 「SAML 2.0メタデータ」の右にある「ダウンロード」をクリックして、メタデータXMLをダウンロードしておきます。

続いて、ULIZAにユーザーを割り当てます。

  1. 左側のメニューから「アカウント管理>ユーザー」をクリックしてユーザー管理画面を開きます。
  2. ULIZAへのアクセス権限を割り当てるユーザーのユーザーIDをクリックします。

  3. 「サービス」セクションで「ULIZA」にチェックを入れ、任意のアカウントIDを入力し「保存」ボタンをクリックします。

  4. 割り当てられたユーザーのユーザーハブ(CloudGate UNO User Hub)にULIZAへのリンクが表示されることを確認します。

    注意

    この時点ではULIZA側での設定が完了していないため、ULIZAへのリンクをクリックするとエラーが発生します。

引き続きULIZA側での設定を行います。

# Oktaの場合

  1. Okta Admin Consoleを開きます。
  2. 左側のメニューから「Applications>Applications」をクリックしてアプリケーション一覧画面を開きます。
  3. 画面上部にある「Create App Integration」ボタンをクリックします。

  4. 「SAML 2.0」を選択して「Next」ボタンをクリックします。

  5. 「App Name」に任意のアプリケーション名(例:「ULIZA」)を入力します。必要に応じてロゴ画像などを設定し「Next」ボタンをクリックします。

  6. 「General」セクションについて、以下のように設定します。
    項目 設定値
    Single sign on URL こちらでメモしておいた「SSO URL (ACS URL)」の値を入力
    Audience URI (SP Entity ID) こちらでメモしておいた「SP Entity ID」の値を入力
    Default RelayState 何も入力しない
    Name ID format 「EmailAddress」を選択
    Application username 「Oktaユーザー名」を推奨
    Update application username on 「作成と更新」を選択

  7. 「Next」ボタンをクリックします。

  8. 「I'm an Okta customer adding an internal app」を選択し「Finish」ボタンをクリックします。

  9. 「View SAML setup instructions」ボタンをクリックします。

  10. 最下部にある「IDP metadata」の内容全体をテキストエディタに貼り付け、「idp-metadata.xml」というファイル名で保存します。

    注意

    IDP metadataは複数行にまたがる長い文字列です。テキストボックスを右クリックして「すべて選択」をクリックするか、Ctrl+Aキーを使用して、IDP metadataの内容全体が確実にコピーされていることを確認してください。

続いて、ULIZAにユーザーを割り当てます。

  1. アプリケーション詳細画面で「Assignments」タブをクリックします。
  2. 「Assign」ボタンをクリックし、表示されるメニューから「Assign to People」を選択します。

  3. ULIZAへのアクセス権限を割り当てるユーザーの右にある「Assign」をクリックします。

  4. 「Save and Go Back」ボタンをクリックします。

  5. 引き続きユーザーの割り当てを行います。終わったら「Done」ボタンをクリックします。

  6. 割り当てられたユーザーのダッシュボードにULIZAへのリンクが表示されることを確認します。

    注意

    この時点ではULIZA側での設定が完了していないため、ULIZAへのリンクをクリックするとエラーが発生します。

引き続きULIZA側での設定を行います。

# OneLoginの場合

  1. OneLogin管理コンソールを開きます。
  2. 画面上部のメニューから「Applications」をクリックしてアプリケーション一覧画面を開きます。
  3. 「Add App」ボタンをクリックします。

  4. 検索ボックスに「SAML Custom Connector (Advanced)」と入力し、表示された「SAML Custom Connector (Advanced)」をクリックします。

  5. 「Display Name」に任意の表示名(例:「ULIZA」)を入力します。必要に応じてロゴ画像などを設定し「Save」ボタンをクリックします。

  6. 左側のメニューから「Configuration」をクリックします。
  7. 各項目について、以下のように設定します。特に指定のない項目については、変更する必要はありません。
    項目 設定値
    RelayState 何も入力しない
    Audience (EntityID) こちらでメモしておいた「SP Entity ID」の値を入力
    ACS (Consumer) URL Validator こちらでメモしておいた「SSO URL (ACS URL)」の先頭に ^ を、末尾に $ を連結し、.\. に、/\/ に置換した文字列を入力
    ACS (Consumer) URL こちらでメモしておいた「SSO URL (ACS URL)」の値を入力

  8. 「Save」ボタンをクリックします。
  9. 画面右上にある「More actions」メニューから「SAML metadata」をクリックし、メタデータXMLをダウンロードしておきます。

  10. 左側のメニューから「Access」をクリックします。
  11. ULIZAへのアクセス権限を割り当てるロールを選択して「Save」ボタンをクリックします。

  12. 割り当てられたロールを持つユーザーのポータルにULIZAへのリンクが表示されることを確認します。

    注意

    この時点ではULIZA側での設定が完了していないため、ULIZAへのリンクをクリックするとエラーが発生します。

引き続きULIZA側での設定を行います。