SaaS

PingOne for Workforceの紹介

Ping Identity Logo

前回の記事では、Ping Identity社とそのIdP製品について、簡単に紹介しました。今回は、Ping Identityの提供するPingOne for Workforceについて紹介します。

PingOne for Workforceとは

PingOne for Workforceとは、Ping Idenity社の提供する、従業員向けのIDaaSです。

“for Workforce”の他にもPingOne for Customersという企業の顧客向けのプランもあります。弊社では、主に企業の従業員向けのIdPの導入をお手伝いしているので、この記事では”for Workforce”に絞って紹介します。機会があれば別の記事で紹介するかもしれません。

ここでは、他の一般的なIdPや、Okta、Entra IDと比較して、どのような特徴があるのかを紹介していきます。

この記事では、以降はPingOne for Workforceのことを、単にPingOneと表記します。

テナントの構成(組織と環境)

組織を表示している様子。ここには4つの環境が含まれている。

PingOneを利用する際の一番大きな枠として、組織(Organization)があります。組織には複数の環境(Environment)が含まれます。

ユーザーやグループなどの情報が格納されるディレクトリや、SSOの連携をするアプリケーションの情報などは、すべて環境に含まれます。複数の環境はそれぞれ独立しています。つまり、PingOneの環境は、他のIdP(IDaaS)のテナントに相当すると言えます。

1つの組織の中に、従業員向けの環境、協力会社向けの環境、自社サービスを利用する顧客向けの環境、設定の検証用の環境、などといった用途に応じて複数の環境が作れます。

なお、ライセンスは組織に関連付けされ、そこから環境に対してライセンスを割り当てます。

管理者の環境を分離できる

PingOneは、初期状態でAdministratorsという名前の環境が用意されています。PingOneの管理者のアカウントは、この環境に作成することが推奨されています。管理者ロールを適切に割り当てることで、管理者は組織全体や他の環境も管理することができます。

管理者の環境が分離されることによって得られるメリットがいくつかあります。以下は一例です。

  • 管理をするためのアカウントと、通常利用するアカウントを分離できるため、通常利用するアカウントに、必要以上の権限を付与しなくても良い
  • 管理者向けの認証ポリシーと、一般の従業員が利用する認証ポリシーが分離できるため、一般の従業員が利用する認証ポリシーを変更する際に、ミスで管理者がロックアウトされるという事故がなくなる

ディレクトリ

ディレクトリは、ユーザーやグループが格納される場所です。また、ユーザーアカウントやそれに関する属性などの情報も含まれます。PingOneのディレクトリには、以下のような特徴があります。

ポピュレーション(Population)

PingOneには、ポピュレーションというものがあります。ポピュレーションにはユーザーやグループが所属します。

管理者が管理できる対象を、特定のポピュレーションに絞ることができます。例えば、大きい組織において、特定の子会社や特定の部門など、組織ごとに管理者を分けたり、一般の従業員とゲストのアカウントを分離したりできます。

また、ポピュレーションにパスワードポリシーや、デフォルトの認証プロバイダの関連付けができます。それにより、例えば従業員とゲストで、要求する認証の内容を分けるといったことができます。

グループ

PingOneのグループの一番特徴的な部分は、グループのネスト(入れ子)に対応していることだと思います。

Active DirectoryなどのLDAPサービスでは、グループが他のグループに所属できます。その機能を利用し、会社の組織構造をグループで表現できます。IdPでも同じようにグループをネストして使いたい、という話はよく聞きます。PingOneならその要望を叶えることができます。

ユーザーが所属しているグループのうち、直接追加されているのはIT engineeringグループの1つだけになっている。この画像では、Everyone → Business technology consulting → IT Engineeringと、グループが3段階ネストしている。

また、グループをポピュレーションに所属させることで、ユーザーは同じポピュレーションにあるグループにしか参加できないという制限がつきます。他のポピュレーションにあるグループには参加できません。

一方で、ポピュレーションに所属しないグループも作れます。その場合は、その環境全体のユーザーが所属できるようになります。用途に応じて使い分けると良いでしょう。

その他のグループの機能として、以下のようなものがあります。

  • グループにメタデータとして任意の情報を入れられる。認証・認可時に利用できる
  • 管理者ロールをグループに付与して、グループメンバーに管理者ロールを割り当てる

ユーザー属性

PingOneのユーザー属性は、初期状態では30種類ほど、最大で200種類のカスタム属性が追加できます。

ユーザー属性は、重複なし(Unique)、複数の値(Multivalued)、列挙(Enumerated)、正規表現による検証(Validated)などの種類が利用できます。

また、個々の属性に対してアクセスコントロールが可能で、ユーザー自身で管理できる・できないといった権限が設定できます。

ユーザー

一般的なIdPは、ユーザー名がメールアドレスであることが推奨または必須であることがほとんどです。しかし、PingOneでは、ユーザー名は任意の文字列を使うことができます。もちろん、メールアドレスをユーザー名として使うこともできます。メールアドレスを所有していないユーザーがいても困りません。

認証

他のIdPと比較して、PingOneの特徴的な機能について紹介します。

パスワードポリシー

パスワードポリシーの設定。21項目ある。

PingOneではパスワードポリシーを細かく設定できます。設定項目を数えてみたら21項目ほどありました。それぞれの項目を個別にオン・オフできるので、パスワードポリシーを細かく設定したい・設定する必要がある場合には便利なのではないかと思います。

パスワードポリシーは、前述したポピュレーションごとに設定できるので、組み合わせて使う他の認証要素の強度に応じてパスワードポリシーを調整する、といったことも可能です。つまり、MFAが十分強力なら複雑なパスワードポリシーは要求しない、強力なMFAが利用できない場合は、強力なパスワードを要求するポリシーにする、といった使い分けができます。

多要素認証(MFA)

PingOneの多要素認証は、歴史的経緯により、PingIDという別の名前のサービスとして提供されています。

一般的には、スマートフォンのPingIDアプリを使ったプッシュ通知型の認証方式を使います。PingIDアプリを使った認証では、さまざまなポリシーが利用できます。それらのうち、特に珍しいと思われる機能について紹介します。

認証に利用できるデバイスを限定する

iPod Touchは許可しないデバイスとする設定をしている様子。

PingIDアプリを使うスマホのOSの最小バージョンを指定したり、MDMで配ったPingIDアプリのみ許可したりできます。

また、PingIDアプリを利用できるスマホのメーカーやデバイスの種類を限定するといった、とてもユニークな機能があります。

例えば、会社で配っているAndroid端末がGoogle Pixelだけだったとした場合に、それ以外の端末での利用をさせない、ということができます。また、それとは逆に、特定のメーカーの端末だけは許可しない、ということもできます。

また、PingIDアプリの利用する際に生体認証を要求したり、ルート化されたり脱獄した端末ではPingIDアプリを許可しない、といった設定もできます。

Windows、macOS、SSH、RADIUSで使う

WindowsやmacOSにログインする際に、PingIDアプリを使ったMFAを要求できます。

今は、WindowsにはWindows Hello for Business(WHfB)があるので、この機能をこれから使うことはないかもしれません。WHfBが使えるようになる前には有用だったと思います。一方で、macOSの場合、アンロックにTouch IDは利用できますが、ログインする際には利用できないので、まだ利用価値があるかもしれません。

それと同じように、サーバーにSSHする際にPingIDアプリによる認証を要求できます。PAMモジュールをインストールする必要があります。PingIDによる認証はサービス側でログが残るので、サーバーの外部に証跡を残したいようなケースでは便利かもしれません。

また、VPN接続時などのRADIUS認証にも、PingIDアプリによる認証ができます。サーバーにRADIUSゲートウェイの導入が必要です。

PingOne DaVinci

PingOneには、ここで紹介した組み込みの認証機能の他に、認証フローをノーコードツールによって構成できるPingOne DaVinciという機能があります。

PingOne DaVinciを使うことで、認証・認可のフローをノーコードで自由にカスタマイズすることができます。PingOne DaVinciについてはここでは紹介しきれないので、別の機会に紹介したいと思います。

PingOne DaVinciについては、過去にノーコードで認証フローが作れるPingOne DaVinciの紹介という記事を出していますので、こちらもご参照ください。

アプリケーション連携

IdPの基本的な機能として、SAMLまたはOpenID Connect(およびOAuth)を使って、外部のアプリケーションとシングルサインオンができます。Entra IDとはWS-Federationで連携できます。

アプリに属性を渡す設定で、PingOne Expression Languageという言語を使って、属性値を加工することができます。あえて詳しくは書きませんが、subjectも例外ではない、というのがポイントかもしれません。

外部との連携

PingOneはさまざまな方法で外部との連携ができます。特徴的なものについて紹介します。

プロビジョニング

アウトバウンドだけでなく、インバウンドのSCIMに対応しています。外からPingOneにユーザーを作成する際に利用できるので、既存のIdPから取り込むことができます。

LDAP

LDAPゲートウェイを使うことで、LDAPサービスと連携できます。

ユーザー認証時に、PingOneのディレクトリに登録されていなければLDAPに問い合わせをし、LDAPにユーザーがいる場合は、PingOneにユーザーの登録ができるので、既存のLDAPからPingOneにスムーズに移行できます。

Active Directoryとの連携時に、PingOneはKerberos認証に対応します。

PingOne DaVinci

認証のセクションでも紹介した、ノーコードツールです。認証フローで使うだけでなく、ちょっとしたワークフローを実装することができます。様々な外部サービスと連携できるコネクターが用意されているので、フロー中に外部サービスと連携できます。

ユーザー体験(User Experience)

通知やメッセージのカスタマイズ

SMS、Email、Voiceメッセージをカスタマイズできる

さまざまなケースで、ユーザーにメールやSMSを使って通知することがあります。その時に送るメールの内容をテンプレートを使ってカスタマイズできます。

また、認証フロー中に出力されるメッセージも、カスタマイズ可能です。

多言語対応

有効にする言語を選択する。デフォルトの言語も設定できる。

前述の通知やメッセージの出力は多言語に対応しており、デフォルトの状態で17言語分対応しています。必要に応じて言語を追加することもできます。

まとめ

他のIdPにはない、PingOneの特徴的な機能について、紹介してきました。

こうやって挙げてみると、比較的規模の大きい組織が嬉しい機能が多いのかな、という印象があります。また、カスタマイズ性が高いという特徴もあるので、カスタマイズ性の高さを魅力に思う組織にも向いていると思います。

PingOneは日本では知名度が低いので、どんどん紹介していこうかなと思います。

Isobe Kazuhiko

Web業界で上から下まで色々なことを経験してきて、今は、Identityに関することを中心にやってます。