製品概要
過去数ヶ月にわたり、edXパートナーとOpen edXコミュニティのメンバーは、学習者がキャンパスの認証情報を使用してedXコースにアクセスできるようにする新しいサインイン機能を設計・実装してきました。edXが現在GoogleまたはFacebookでのサインインをサポートしているのと同様に、参加機関の学習者は、学校のIDプロバイダーを使用してedXに認証できます。さらに、教育機関はedXとデータを共有することで、よりパーソナライズされたエクスペリエンスを提供できます。例えば、学習者のedXプロフィールに氏名を自動入力したり、後日名簿や成績の同期をサポートするために学生固有のIDを提供したりすることができます。
特徴
学習者がedX Edge環境にアクセスすると、所属機関またはキャンパスの認証情報を使用してサインインするオプションが表示されます。学習者は、オンラインキャンパスシステムからアクセスする場合や、コースチームがメールで送信する特別な招待リンクを介してサイトにアクセスする場合にも、この代替ログイン方法にアクセスできます。

学習者が edge.edx.org に直接アクセスする場合、最初に「自分の機関/キャンパスの資格情報を使用する」を選択します。

次に、所属機関のサインイン ページにリンクされます。

学習者がコースへの登録を招待されると、このサインインページに直接誘導されます。学習者がキャンパスシステムからのリンクをたどった場合、すぐにサインインするか、そのキャンパスの認証情報でサインインするように求められるか、通常のサインインページが表示される場合があります。動作は、リンクの構成方法、学習者が以前にサインインしたことがあるかどうか、学習者がキャンパスシステムにサインインしているかどうか、そして統合の設定方法によって異なります。
ただし、いずれの場合も、適切な認証情報(所属機関の要件によって異なります)を入力すると、学習者は要求されたedXリソースに自動的にリダイレクトされます。学習者が初めてログインする際には、追加のアカウント情報(名前やメールアドレスなど)を入力するよう求められます。この情報は、学習者のアカウントベースのIDとedX IDを関連付けるために使用されます。学習者は、アカウントのリンクを解除しない限り、この操作を再度行う必要はありません。
テクノロジー
この機能は SAML2.0 SAML(Security Assertion Markup Language、バージョン2.0)は、当事者間で認証および承認データを交換するための標準化された手段を提供します。SAML交換では、アイデンティティプロバイダーがサービスプロバイダーに対してエンドユーザーのアイデンティティとアクセス権を安全にアサートし、ユーザーが指定されたリソースにアクセスできるようにします。この場合、アイデンティティプロバイダーは現在実装されている機関のサインインサービスのいずれかであり、サービスプロバイダーはedXです。認証が完了すると、学習者はedge.edx.orgで利用可能なすべてのリソースにアクセスできるようになります。ただし、そのリソースに関連付けられたコースに登録されている必要があります。
SAMLで構築されているため、新しいサインインサービスは完全に互換性があります。 Shibboleth高等教育機関で広く利用されているSAMLプロトコルのオープンソース実装であるShibboleth。ワーキンググループのメンバーを対象とした調査では、すべての機関が少なくとも一部の学習者ベースをShibbolethで管理しており、一部の機関ではすべてのユーザーを単一のShibbolethベースのアイデンティティストアで管理していることがすぐに分かりました。最初のリリースでは、edX EdgeをShibbolethログインをサポートするように構成しています。その後のリリースでは、需要に応じて他のSAML2準拠のアイデンティティプロバイダーへのサポートを拡大する予定です。
この機能は、 既存のサードパーティ認証実装2014年にGoogleのジョン・コックス氏が寄稿した。また、 構成モデル機能edX の Cale Pennington によって実装され、Django に「データベース経由の構成」ソリューションを提供します。
私たちは、他の 2 つのオープン ソース プロジェクトの成果にも大きく依存しています。 Pythonソーシャル認証 の三脚と Python-saml両プロジェクトチームは非常に反応が良く、3つのオープンソースプロジェクト間のこの連携は注目に値する。主任開発者のBraden MacDonaldは、次のような変更を加えてくれた。 SAMLからPythonソーシャル認証のサポート、および追加 Python-samlに必要な機能アップストリームのレビュアーは、貢献をタイムリーにレビューし、組み込むよう尽力し、6月下旬に予定通り機能をリリースすることができました。コードをフォークしてedXだけのためにこれらの変更を行うのではなく、Pythonコミュニティ全体がこの作業の恩恵を受けることができるようになりました。
これらのプロジェクトにより、既存の膨大な作業を活用し、Open edX プラットフォームに必要な独自の統合機能に集中することができ、全体的な開発時間を大幅に短縮することができました。
プロセス
サードパーティ認証プロジェクトは、キャンパス統合の課題に対処するために開催されるedXキャンパスアプリケーションワーキンググループで特定されたニーズから生まれました。このグループは、すべてのメンバーが以下のいずれかの方法でプロセスに貢献するという原則に基づいて設立されました。
- 議論への参加や文書のレビューという形での思考資本、特に幅広いニーズに対応するためのさまざまなユースケースの提示。
- Open edX コード ベースへの貢献という形でのアプリケーション開発。
- メンバーが開発したソリューションをテストする形での検証。
ワーキング グループと、その結果として生じるプロジェクト (現在、この認証プロジェクトと、LTI ツール プロバイダーとしての edX をサポートするプロジェクトが含まれています) をサポートするために、edX は継続的な製品開発サポートを提供し、関与の構造を作成し、アーキテクチャの決定を導き、最終的には Open edX プラットフォームに組み込むソリューションを評価します。
次は何ですか?
現在、この機能はedge.edx.orgに導入されており、ブリティッシュコロンビア大学というパートナー機関で利用されています。他のパートナー機関とも協力し、各機関の学習者向けにソリューションのテストと導入を進めています。今後は、以下のような興味深い方法で機能を拡張したいと考えています。
- 分析と統合を目的として、厳しいプライバシー制限を持つパートナー校が不透明な学生 ID を渡し、edX ユーザー ID を取得できるメカニズムを作成します。
- InCommon などの Shibboleth フェデレーションと統合することで、米国のほぼすべての大学の学生が SSO を使用できるようになります。
- パートナー ブランディングを使用してサインイン エクスペリエンスをカスタマイズします。
Open edXコミュニティの誰かがこれらの機能に取り組むことに興味がある場合は、 edXオープンソースチームに連絡する.
ありがとうございます!
SSO プロジェクト チームに特別な感謝を申し上げます。
ザビエル・アントビアク、OpenCraft
Braden MacDonald、OpenCraft(リード開発者)
デレク・ホワイト、UBC
潘羅、UBC
ウィリアム・オノ、UBC
ブライアン・タルボット、edX
フランシス・ボツフォード、edX
どうぞお気軽に 私に連絡してください プロジェクトに関する追加情報を確認するか、GitHub のソースコード (https://github.com/edx/edx-platform/tree/master/common/djangoapps/third_party_auth).
![]()