第5章 デベロッパーポータルの認証

デベロッパーポータルへのアクセスを設定するには、以下の手順に従います。

本章では、開発者のサインアップまたはサインインを許可するためにデベロッパーポータルで利用可能なさまざまなタイプの認証について、有効および無効にする方法を説明します。

現時点で、デベロッパーポータルへの認証に関して、3scale はさまざまな方法をサポートしています。それらを以降のセクションで説明します。

デフォルトでは、デベロッパーポータルで有効にできる認証方法は 1 つだけですが、3scale.net でサインアップした場合は 2 つになります。

  • ユーザー名/メールアドレスおよびパスワードによる認証
  • GitHub による認証 (3scale GitHub アプリケーションを使用): デフォルトでは 3scale.net でサインアップした場合にのみ有効
GitHub Authentication
注記

2015 年 12 月 14 日より前に作成された古い 3scale アカウントの場合、GitHub 認証および Auth0 認証を有効にするためには、また別の手順に従わなければならない可能性があります。

これに該当する場合、ログインおよびサインアップ用のフォームでこの機能を有効にするためには、以下のコードスニペットを両方のテンプレートに追加する必要が生じます。

    {% include 'login/sso' %}

5.1. ユーザー名/メールアドレスおよびパスワードによる認証の有効化と無効化

デベロッパーポータルでは、デフォルトでユーザー名/メールアドレスおよびパスワードによる認証が有効です。これは開発者がアカウントを作成してログインするための標準的な方法なので、通常は、ここを変更することはありません。

ただし、まれにですが、この認証タイプを削除する必要があります。そのためには、下記のスクリーンショットで示すように Login > New テンプレートを編集します。

GitHub Authentication

デベロッパーポータルにユーザー名/メールアドレスおよびパスワードによる認証を追加して元の状態に戻す必要がある場合は、前のステップで追加した Liquid コメントタグを削除するだけです。

5.2. GitHub による認証の有効化および無効化

専用の GitHub アプリケーションを有効にするには、まずアプリケーションを作成し、対応するクレデンシャルを取得する必要があります。

GitHub による認証を設定するには、2 種類の方法があります。

  • 3scale GitHub アプリケーションを使用する (ホスト型 3scale アカウントではデフォルトで有効)
  • 専用の GitHub アプリケーションを使用する (オンプレミス型のインストール環境用)

このデフォルト設定に変更を加える場合、3scale 管理ポータルで Audience > Developer Portal > SSO Integrations の順に移動すると、以下のような画面が表示されます。

SSO integrations

GitHub をクリックして設定画面にアクセスします。

Edit SSO integrations

この画面では、以下の操作を行うことができます。

  1. デベロッパーポータルでの GitHub 認証を利用可能にしたり利用不可にしたりする。その操作は、「Published」チェックボックスを選択または選択を解除するだけです。
  2. 3scale ブランドの GitHub アプリケーションを選択する、または専用の GitHub アプリケーションを追加する。3scale GitHub アプリケーションはデフォルトで有効です (公開されています)。Edit をクリックし、GitHub で作成した OAuth アプリケーションの詳細 (「Client」と「Client secret」) を入力することで、専用の GitHub アプリケーションを設定できます。専用の GitHub アプリケーションでインテグレーションを適切に機能させるためには、「custom branded」オプションを切り替えた後に表示される「Callback URL」を使用して GitHub アプリケーションの承認コールバック URL を設定しなければならないことに留意してください (例: https://yourdomain.3scale.net/auth/github/callback)。
  3. 設定した認証フローが想定どおりに機能することをテストする。

5.3. Auth0 による認証の有効化および無効化

5.3.1. 注記

この機能は、Enterprise プランでのみ利用可能です。

開発者が Auth0 を使用して認証できるようにするためには、まず有効な Auth0 サブスクリプションが必要です。

Auth0 による認証をデフォルトで有効にすることはできません。デベロッパーポータルへのアクセスを管理するために 3scale と Auth0 アカウントを組み合わせて使用する場合は、以下の手順に従ってその設定を行うことができます。

3scale 管理ポータルで Audience > Developer Portal > SSO Integrations の順に移動し、Auth0 をクリックします。

SSO with Auth0

この設定画面で、Auth0 アカウントの詳細情報を追加する必要があります。クライアント ID、クライアントシークレット、およびサイトを入力したら、「Published」チェックボックスを選択して Create Auth0 をクリックし、デベロッパーポータルで利用できるようにします。

5.4. Red Hat Single Sign-On による認証の有効化および無効化

注記

この機能は、Enterprise プランでのみ利用可能です。

Red Hat Single Sign-On (RH-SSO) は、統合サインオンソリューション (SSO) です。3scale と組み合わせて使用すると、利用可能な任意の RH-SSO アイデンティティーブローカー機能とユーザーフェデレーションオプションを使用して、開発者を認証することができます。

3scale との互換性がある Red Hat Single Sign-On のバージョンについての情報は、サポートされる構成 に関するページを参照してください。

5.4.1. 操作を始める前に

Red Hat Single Sign-On を 3scale と統合する前に、動作状態にある Red Hat Single Sign-On インスタンスが必要です。RH-SSO 7.2 のインストール に関する手順については、Red Hat Single Sign-On のドキュメントを参照してください。

5.4.2. デベロッパーポータルを認証するための RH SSO の設定

Red Hat Single Sign-On を設定するには、以下の手順を実施します。

  1. Red Hat Single Sign-On のドキュメント に記載の手順に従って、レルムを作成します。
  2. Clients に移動して Create をクリックし、クライアントを追加します。
  3. 以下のフィールドと値を考慮してフォームに入力します。

    • Client ID: クライアントの希望の名前を入力します。
    • Enabled: ON に切り替えます。
    • Consent Required: OFF に切り替えます。
    • Client Protocol: openid-connect を選択します。
    • Access Type: confidential を選択します。
    • Standard Flow Enabled: ON に切り替えます。
    • Root URL: 3scale 管理ポータルの URL を入力します。これは、デベロッパーポータルへのログインに使用する URL アドレスでなければなりません (例: https://yourdomain.3scale.net またはカスタムの URL)。
    • Valid Redirect URLs: /* を付けて再度デベロッパーポータルを入力します (例: https://yourdomain.3scale.net/*)。

      その他のパラメーターはすべて空のままにするか、OFF に切り替える必要があります。

  4. 以下の手順によりクライアントシークレットを取得します。

    • 前のステップで作成したクライアントに移動します。
    • Credentials タブをクリックします。
    • Client Authenticator フィールドで、Client Id and Secret を選択します。

      RH-SSO
  5. email_verified マッパーを設定します。3scale では、ユーザーデータの email_verified 要求が true に設定されている必要があります。「Email Verified」ユーザー属性を email_verified 要求にマッピングするには、以下の手順を実施します。

    • クライアントの Mappers タブに移動します。
    • Add Builtin をクリックします。

      RH-SSO
    • email verified オプションのチェックボックスを選択し、Add selected をクリックして変更を保存します。

      RH-SSO

      Red Hat Single Sign-On ローカルデータベースでユーザーを管理する場合は、必ずユーザーの Email Verified 属性を ONに設定してください。

      ユーザーフェデレーション を使用する場合は、3scale SSO インテグレーション用に前のステップで作成したクライアントで、トークン名を email_verified とし要求の値を true に設定して、ハードコーディングされた要求を設定することができます。

  6. オプションとして、org_name マッパーを設定します。
    ユーザーは 3scale にサインアップするとき、サインアップフォームに組織名の値を入力するよう求められます。デベロッパーポータルでのサインアップフォームの入力を不要にして、ユーザーが Red Hat Single Sign-On によるサインアップを意識しないようにするには、さらに org_name マッパーを設定する必要があります。

    • クライアントの Mappers タブに移動します。
    • Create をクリックします。
    • 以下のようにマッパーのパラメーターを入力します。

      • Name: 希望する任意の名前を入力します (例: org_name)。
      • Consent Required: OFF に切り替えます。
      • Mapper Type: User Attribute を選択します。
      • User Attribute: org_name を入力します。
      • Token Claim Name: org_name を入力します。
      • Claim JSON Type: String を選択します。
      • Add to ID token: ON に切り替えます。
      • Add to access token: ON に切り替えます。
      • Add to userinfo: ON に切り替えます。
      • Multivalued: OFF に切り替えます。
    • Save をクリックします。

      RH-SSO

      Red Hat Single Sign-On のユーザーに org_name 属性があれば、3scale は自動的にアカウントを作成することができます。属性がないユーザーについては、アカウント作成の前に組織名を指定するよう求められます。あるいは、Red Hat Single Sign-On アカウントでサインインするすべてのユーザーについて、Hardcoded claim タイプのマッパーを作成して、組織名をハードコーディング値に設定することもできます。

  7. インテグレーションをテストするには、ユーザーを追加する必要があります。そのためには、Users に移動し、Add user をクリックして必須フィールドに入力します。Red Hat Single Sign-On でユーザーを作成する場合、Email Verified 属性 (email_verified) が ON に設定されている必要があることに留意してください。設定されていないと、ユーザーが 3scale でアクティブ化されません。

Red Hat Single Sign-On のアイデンティティーブローカーとしての使用

Red Hat Single Sign-On をアイデンティティーブローカーとして使用することや、外部データベースをフェデレーションするように設定することができます。これらの設定方法については、Red Hat Single Sign-On のドキュメントで、アイデンティティーブローカー設定 および ユーザーフェデレーション に関する章を参照してください。

アイデンティティーブローカーとして Red Hat Single Sign-On の使用を選択し、さらに開発者が RH-SSO と 3scale のアカウント作成手順の両方をスキップできるようにすることを希望する場合は、下記の設定を行うことを推奨します。以下の例では、アイデンティティープロバイダーとして GitHub を使用しています。

  1. Red Hat Single Sign-On で、アイデンティティープロバイダー に GitHub を設定してから、Mappers というタブに移動し、Create をクリックします。

    RH-SSO
  2. 名前を付けて、識別できるようにします。
  3. Mapper TypeAttribute Importer を選択します。
  4. Social Profile JSON Field Path に company を追加します。これは GitHub での属性の名前です。
  5. User Attribute Name に org_name を追加します。これは Red Hat Single Sign-On での属性の呼び方です。

    注記

    Red Hat Single Sign-On では、必須フィールドとして姓および名に加えてメールアドレスの入力が必要です。3scale では、メールアドレス、ユーザー名、および組織名が必要です。したがって、組織名のマッパーを設定することに加え、ユーザーが両方のサインアップフォームをスキップできるよう、以下のことを確認してください。

    • IdP アカウントで、姓と名が設定されている。
    • IdP アカウントで、メールアドレスにアクセスできる。つまり、GitHub で、メールアドレスがプライベートに設定されている場合、共有されません。

5.4.3. デベロッパーポータルを認証するための 3scale の設定

API プロバイダーは、Red Hat Single Sign-On (RH-SSO) を使用したデベロッパーポータルの認証が可能になるように 3scale を設定します。

注記

RH-SSO を使用した認証は、デフォルトでは有効になっていません。RH-SSO は、エンタープライズ 3scale アカウントでのみ利用可能です。したがって、アカウントマネージャーに RH-SSO による認証を有効にするように依頼する必要があります。

前提条件

  • エンタープライズ 3scale アカウントが、RH-SSO を有効にするように設定されている。
  • デベロッパーポータルを認証するために RH SSO を設定した後、以下の詳細情報を取得している。

    • クライアント: RH-SSO でのクライアント名
    • クライアントシークレット: RH-SSO でのクライアントシークレット
    • レルム: レルム名および RH-SSO アカウントへの URL アドレス

手順

  1. 3scale 管理ポータルで Audience > Developer Portal > SSO Integrations の順に選択します。
  2. Red Hat Single Sign-On をクリックします。
  3. 「デベロッパーポータルを認証するための RH SSO の設定」で設定した RH-SSO クライアントの詳細 (クライアント、クライアントシークレット、およびレルム) を指定します。
  4. 変更を保存するには、Create Red Hat Single Sign-On をクリックします。