2016-08-16 2 views
2

OneLoginを使用して、ユーザー名とパスワードを取得し、他のサイトの認証に使用できるSAMLアサーションを生成するコマンドラインプログラムを作成したいと考えています。OneLogin APIを使用してスタンドアロンアプリでSAMLアサーションを生成できますか?

問題は、「Generate SAML Assertion」API自体にAPI資格情報から生成されたアクセストークンが必要になることです。だから、私のアプリをユーザーに配布するには、私はその呼び出しを行うためにAPI資格情報を作る必要があります。これは問題ありませんが、発信者がSAMLリソースにPOSTすることを許可する唯一の認証プロファイルは、「すべて管理」です。

誰もこのようなことをしましたか?

OneLoginのユーザーは、SAMLアサーションAPIのみを呼び出すためのAPI認証情報タイプを追加できますか?または、APIをオープンにするだけでもかまいません。 AWSの「AssumeRoleWithSAML」APIにはユーザーの資格情報は必要ありません(APIの要点は、別の資格情報タイプに変換する資格情報を持つことです)。

答えて

0

すぐに更新を公開しますSAMLアサーションのユーザー資格情報を交換するだけなので、トークンの種類は「読み取り/書き込みユーザー」になります。これで十分だろうか?

注:私が最初に誤って

+0

ええ、私はそれが動作すると思います。 – Kevin

+0

ユーザーが有効な資格情報とApp IDをSAML APIに提示した場合、OneLogin APIキーが必要な理由がわかりません。 1つの使用例では、前述のSTS AssumeRoleWithSAML API呼び出しを使用してAWS APIに連合された一時的な資格情報を生成しています。ユーザーがプロビジョニングされた役割にフェデレーションを行い、一時的なアクセスキーを取得し、AWS CLIやその他のAPI呼び出しでその機能を使用できるようにしたいと思います。 – bobmagoo

1

を「読み出し/書き込み」の代わりに「読み」を書いたあなたは、開発者はSAMLをトークン生成するか、SAMLトークンを返すWebサービスを構築しない個人的なアプリケーションを与えるのですか?

前者は悪いです(アプリにキーがあるため)後者は無限に安全です。

キー(ID &シークレット)を使用してSAMLアサーションを取得するために必要な権限を引き下げても、これをWebサービスとして構築する必要があります。あなたのコマンドラインツールは、SAMLアサーションを取得するために呼び出す必要があります。

一般的な意見に反して - クラウドベースはより良いセキュリティを意味します。

+0

ありがとうございます。私は開発者に個人的なアプリケーションを提供したいと考えていました。それは私の会社の内部使用のためのものであり、あるタイプの資格情報を別のタイプの資格情報に変換するだけの仕事がある別々のアプリケーションの手間を必要としません。 (パスワードを安全に保つためには、クラウドアプリケーションにもSSLなどが必要です。)もちろん、oneloginと対話するためのキーを作成することは理想的ではありませんが、まずoneloginがSAML APIの認証を必要とするのは愚かです。私がSAML交換を行うために書くクラウドサービスは、onelogin APIを取り巻く薄いラッパーです。 – Kevin

+0

真剣に、「クラウド」は本当により良いセキュリティを意味します。 私の個人的なセキュリティ上の懸念は、愚かな(しかしまだ悪い)タイプが、スクリプト化されたブラウザよりもAPIを(oAuthなしで)乱用する方がはるかに簡単だということです。 ユーザー名とパスワードに加えて有効なoAuthトークンを要求すると、悪いアクターが自動化するのがはるかに難しくなります。ユーザーが資格情報を解読しようとしているか、悪意を持って不正なパスワードを使ってユーザーをアカウントから保護しようとしているかどうか。 私は、追加のWebサービスが苦痛であることを理解します。しかし、それは正しいことです、セキュリティに敏感です。 –

0

Authentication Only APIスコープがあり、アプリケーションに焼き付けることができます。このスコープで利用可能な

エンドポイントは、次のとおりです。

  • ファクター(ログイン)
  • セッション・ログイン・トークンを作成してログインユーザを確認し
  • SAMLアサーションを生成因子(SAMLアサーション)
  • を確認してくださいOut

ウェブアプリの作成SAMLアサーションを取得することが最善の解決策であり、CLIとの対話を可能にします。特に、「Log User Out」を検討すると、IDを推測できる限り、任意のユーザーをログアウトできます(簡単)。 従業員を信頼している場合は、Authentication OnlyスコープのクライアントID /シークレットをCLIに埋め込むことができます。これは、OneLogin AWS-STS CLIツールを使用して最初のステップで行うこととまったく同じです。もちろん不正な従業員にこれを悪用させることもできますが、クライアントID /シークレットを取り消し、新しいクライアントID /シークレットを使用して新しいバージョンを展開するのは本当に簡単です。

関連する問題