OAuth 인증 체계 구성
OAuth 인증 체계를 사용하면 사용자가 OAuth 공급자를 통해 자격 증명을 제출할 수 있습니다. OAuth 공급자는 사용자를 인증하고 사용자에 대한 클레임이 포함된 인증 응답을 보냅니다. 정책 서버는 인증 응답을 확인하고 인증 프로세스를 완료하고 리소스에 대한 액세스 권한을 부여합니다.
sm1252sp1kkr
OAuth 인증 체계를 사용하면 사용자가 OAuth 공급자를 통해 자격 증명을 제출할 수 있습니다. OAuth 공급자는 사용자를 인증하고 사용자에 대한 클레임이 포함된 인증 응답을 보냅니다. 정책 서버는 인증 응답을 확인하고 인증 프로세스를 완료하고 리소스에 대한 액세스 권한을 부여합니다.
OAuth 체계를 구성하는 프로세스는 정책 서버와 에이전트에서 구성 태스크를 수행해야 합니다.
- OAuth 인증 프로세스가 작동하는 방식을 파악합니다.
- 필요한 에이전트 측 구성 요소를 구성합니다.
- 필요한 정책 서버 측 구성 요소를 구성합니다.
다음 그림에서는 OAuth 인증 체계를 구성하는 데 필요한 태스크를 보여 줍니다.

OAuth 인증 프로세스 검토
다음 절차에서는 OAuth 인증 체계가 작동하는 방식을 설명합니다.
- 사용자가 리소스를 요청합니다.
- 에이전트가 요청을 가로채고 정책 서버에 연결하여 리소스가 보호되는지 확인합니다.
- 정책 서버에서 리소스가 OAuth 인증 체계로 보호되는지 확인합니다. 정책 서버에서 에이전트가 사용자를 OAuth FCC(양식 자격 증명 수집기)로 리디렉션하도록 요청합니다.
- 에이전트가 사용자를 FCC로 리디렉션합니다.
- 사용자가 OAuth 공급자를 선택하고 공급자 사이트에서 자격 증명을 제출합니다.
- FCC가 사용자 식별자를 구성하여 정책 서버에 전달합니다.
- 정책 서버가 인증 요청을 구성하여 사용자를 OAuth 공급자로 리디렉션합니다.
- 사용자가 공급자별 자격 증명을 사용하여 OAuth 공급자에 인증됩니다.
- 공급자가 인증 성공 응답을 FCC로 리디렉션합니다.
- 에이전트가 인증 응답을 정책 서버에 전달합니다.
- 정책 서버가 공급자 인증 응답을 확인하고 이를 사용하여 첫 번째 필수 클레임 값을 결정합니다. 정책 서버는 정책 도메인의 모든 사용자 디렉터리를 검색하여 특성이 클레임 값과 일치하는 사용자를 찾습니다. 일치하는 경우 정책 서버가 사용자를 인증합니다.참고:인증 체계에서는 익명 모드의 인증을 지원합니다. 익명 모드에서는 정책 서버가 사용자에 매핑하기 위해 클레임 값을 사용하지않습니다. 정책 서버는 정책 도메인의 모든 사용자 디렉터리를 검색하여 인증 체계에서 정의한 익명 사용자와 일치하는 사용자를 찾습니다.
- 정책 서버가 인증된 사용자의 세션 정보를 FCC에 반환합니다.
- FCC가 세션 쿠키를 생성하여 웹 브라우저에 전달합니다. 사용자는 요청된 리소스로 리디렉션되고 정책 서버는 모든 권한 부여 결정을 유지 관리합니다.
응용 프로그램을 OAuth 공급자에 등록
에이전트 소유자가 등록 태스크를 완료합니다.
사전 요구 사항
웹 에이전트 구성에 SecureURLs 매개 변수가 설정되어 있는지 여부와 설정된 경우 해당 값을 확인해야 합니다.
등록 프로세스의 일부는 리디렉션 URI 설정(Google) 또는 사이트 URL 설정(Facebook)의 항목을 지정하기 위한 것입니다. 이 항목의 형식은 SecureURLs 에이전트 매개 변수의 값에 따라 달라집니다. 관리 UI에서 SecureURLs 매개 변수의 값을 확인하십시오. 이 매개 변수는 호스트 에이전트의 에이전트 구성 개체에 있습니다.
- SecureURLs 매개 변수가 Yes로 설정되어 있으면 URL을 다음 형식으로 입력하십시오.http(s)://agent_host/siteminderagent/forms/oauthcb.fcc?SMQUERYDATA=Sample
- SecureURLs 매개 변수가 No로 설정되어 있으면 URL을 다음 형식으로 입력하십시오.http(s)://agent_host/siteminderagent/forms/oauthcb.fcc
Google
다음 단계를 수행하십시오.
- Google Apps 계정을 설정합니다.
- https://code.google.com/apis/console로 이동하고 로그인합니다.
- "API Access"(API 액세스)를 선택하고 OAuth 클라이언트 ID를 생성합니다. 클라이언트 ID를 생성하려면 다음 정보를 입력합니다.
- Home Page URL(홈 페이지 URL)http(s)://homepage.com예: http://www.forwardinc.com
- Application type(애플리케이션 유형)Web application(웹 애플리케이션)
- Your site or hostname(사이트 또는 호스트 이름)http://agent_host예: http://myagent.ca.com
- "Create clientID"(클라이언트 ID 만들기)를 클릭합니다.
- "Redirect URI"(리디렉션 URI)의 설정을 다음 URI로 편집합니다.
- Redirect URls(리디렉션 URl)http(s)://agent_host/siteminderagent/forms/oauthcb.fccSecureURLs는 설정하지 않거나 No로 설정합니다.또는http(s)://agent_host/siteminderagent/forms/oauthcb.fcc?SMQUERYDATA=SampleSecureURLs는 Yes로 설정합니다.
- "Update"(업데이트)를 클릭합니다.
Google 등록 프로세스가 완료되었습니다.
Facebook
다음 단계를 수행하십시오.
- Facebook 계정을 설정합니다.
- https://developers.facebook.com/apps로 이동합니다.
- 앱 이름을 선택하고 "Continue"(계속)를 클릭합니다.
- 표시되는 자동 가입 방지 텍스트를 입력하고 "Continue"(계속)를 클릭합니다.
- Facebook 로그인 섹션이 있는 웹 사이트에서 다음 필드를 작성합니다.Site URL(사이트 URL)http(s)://agent_host/siteminderagent/forms/oauthcb.fccSecureURLs는 설정하지 않거나 No로 설정합니다.또는http(s)://agent_host/siteminderagent/forms/oauthcb.fcc?SMQUERYDATA=SampleSecureURLs는 Yes로 설정합니다.
- "Save changes"(변경 내용 저장)를 클릭합니다.
- 다음 설정을 완료합니다.
- "Domain"(도메인)을 ca.com으로 설정합니다.
- "Sandbox mode"(샌드박스 모드)를 사용하지 않도록 설정합니다.
- "Canvas URL"(캔버스 URL)을 https://apps.facebook.com/application_name/으로 설정합니다.
- "Secure canvas URL"(보안 캔버스 URL)을 https://apps.facebook.com/application_name/으로 설정합니다.
등록 프로세스가 진행되고 클라이언트 응용 프로그램 URL, 클라이언트 ID 및 관련 암호가 생성됩니다. OAuth 서비스가 권한 부여 코드를 가져오고 토큰에 액세스할 OAuth 권한 부여 서버 끝점 URL도 생성됩니다. 이 정보 중 일부는 OAuth 인증 체계가 올바로 작동하기 위해 사용하는 파일을 설정할 때 필요합니다.
에이전트에서 OAuth 플러그 인이 사용되도록 설정
OAuth 플러그 인은 웹 에이전트 구성 파일(WebAgent.conf) 내에서 참조됩니다. 이 플러그 인은 에이전트가 OAuth 공급자와 통신하고 OAuth 공급자 인증 응답을 정책 서버에 전달할 수 있도록 합니다.
에이전트 소유자에게 필요한 플러그 인이 사용되도록 설정하라고 지시하십시오.
다음 단계를 수행하십시오.
- 웹 에이전트 호스트 시스템에 로그인합니다.
- 웹 에이전트 구성 파일을 엽니다. 기본 파일 위치는 웹 서버 유형에 따라 달라집니다.IIS:agent_home\bin\IISagent_home은 에이전트 설치 경로를 지정합니다.Oracle iPlanet(iPlanet/SunOne):web_server_home/https-hostname/configweb_server_home은 웹 서버 설치 경로를 지정합니다.Apache, IBM HTTP 서버 및 Oracle HTTP 서버:web_server_home/confweb_server_home은 웹 서버 설치 경로를 지정합니다.Domino(Windows):C:\lotus\dominoDomino(UNIX):$HOME/notesdata
- OAuth 플러그 인을 로드하는 행의 주석 처리를 제거합니다.예:#LoadPlugin="C:\Program Files\CA\webagent\bin\OAuthPlugin.dll"
- 파일을 저장합니다.
- 웹 서버를 다시 시작합니다.
에이전트의 OAuth 양식 자격 증명 수집기 수정
샘플 OAuth FCC가 웹 에이전트 설치에 포함되어 있습니다. FCC를 사용하면 사용자가 OAuth 공급자 사용자 이름을 입력하여 인증할 수 있습니다.
기본적으로 FCC는 여러 OAuth 공급자를 표시합니다. 에이전트 소유자에게 보호되는 응용 프로그램이 지원하는 공급자만 파일에 포함하도록 FCC를 수정하라고 지시하십시오.
다음 단계에서는 FCC를 수정하는 방법을 설명합니다.
다음 단계를 수행하십시오.
- 웹 에이전트 호스트 시스템에 로그인합니다.
- 위치agent_home\samples\forms로 이동agent_home은 웹 에이전트 설치 경로를 지정합니다.
- 텍스트 편집기에서 oauth.fcc 파일을 엽니다.
- FCC를 검토합니다. 공급자를 추가할지 제거할지를 결정합니다.
- FCC의 공급자 섹션을 찾습니다. 텍스트에서var oauth_providers문자열을 검색합니다.
- var oauth_providers 섹션에 누락된 공급자 항목을 추가합니다.apps설정 옆에 응용 프로그램 이름을 지정합니다.다음 예제에서는 두 개의 공급자 항목 예를 보여 줍니다.var oauth_providers = { google : { name : 'Google', image :'images/google.gif', apps : 'ForwardIncGoogleApp' }, facebook : { name : 'Facebook', image :'images/facebook.gif', apps : 'ForwardIncFacebookApp' }
- 텍스트에서var oauth_applications문자열을 검색하여 FCC의 응용 프로그램 섹션을 찾습니다. 각 응용 프로그램에 대해 다음 정보를 지정합니다.
- 응용 프로그램 이름
- 사용자가 공급자 아이콘을 클릭할 때 표시되는 레이블 텍스트입니다.
- 이미지 이미지 값은 FCC가 표시하는 공급자 아이콘의 위치입니다.
다음 예제에서는 두 개의 응용 프로그램 항목 예를 보여 줍니다. 한 항목의 이름은 FowardIncGoogleApp이고 다른 항목의 이름은 ForwardIncFacebookApp입니다.중요!이러한 응용 프로그램 이름은 예제 값일 뿐입니다. 배포에는 실제 응용 프로그램 이름을 입력하십시오. 또한, 이 FCC 파일에 입력하는 응용 프로그램 이름은 oauthproviders.xml 파일에 입력한 응용 프로그램 이름과 일치해야 합니다.}; var oauth_applications = { ForwardIncGoogleApp : { name : 'ForwardIncGoogleApp', label : 'Login using google application', image : 'images/google.ico' } ForwardIncFacebookApp : { name : 'ForwardIncFacebookApp', label : 'Login using facebook application', image : 'images/facebook.ico' }, - 필요하지 않은 공급자 항목을 주석 처리하여 해당 공급자를 FCC에서 제거합니다. 공급자 이름 앞에 주석 문자열/*를 입력합니다. 항목 끝에 닫는 주석 문자열*/를 입력합니다. 예:/* google : { name : 'ForwardIncGoogleApp', image :'images/google.gif', apps : 'ForwardIncGoogleApp' },*/
- 수정을 모두 완료한 후 스크립트를 저장합니다.
- 웹 서버를 다시 시작합니다.
OAuth 공급자 구성 파일 수정
OAuth 공급자 구성 파일(oauthproviders.xml)은 정책 서버와 함께 설치됩니다. 공급자 구성 파일에는 각 공급자 및 보호되는 응용 프로그램에 대한 구성 상세 정보가 포함됩니다. 파일에 올바른 설정이 포함되지 않으면 인증이 실패합니다.
파일에 대한 정보:
- 기본적으로 이 파일에는 OAuth FCC에서 사용할 수 있는 모든 공급자에 대한 샘플 설정이 포함되어 있습니다. 샘플 설정을 검토하고 필요에 따라 수정하십시오.중요!이 값은 샘플용입니다. 인증 체계를 배포하기 전에 OAuth 공급자에게 모든 구성 설정을 확인하는 것이 좋습니다.
- 공급자 구성은 여러 응용 프로그램에 공급자 구성을 재사용하기 위해 등록된 응용 프로그램 구성과는 별개입니다.
- 공급자 구성 상세 정보는 응용 프로그램 구성 상세 정보를 따라야 합니다. 각 응용 프로그램은 미리 정의된 공급자 구성 중 하나를 사용합니다.
- 각 응용 프로그램에는 해당 응용 프로그램이 등록되는 하나의 공급자에 대한 PROVIDERLINK가 있어야 합니다.
- FCC 파일에서 공급자 설정을 추가 또는 수정하려면 또한 이 파일에서 공급자의 구성 설정을 추가하거나 수정하십시오.
- 이 파일에 입력하는 응용 프로그램 이름은 oauth.fcc 파일에 입력한 응용 프로그램 이름과 일치해야 합니다.
- 여러 OAuth 인증 체계를 구성하는 경우 각 체계에서 고유한 공급자 구성 파일을 사용할 수 있습니다.
다음 단계를 수행하십시오.
- 정책 서버 호스트 시스템에 로그인합니다.
- 다음 위치로 이동합니다.siteminder_home\config\properties
- siteminder_home정책 서버 설치 경로를 지정합니다.
- 기본 공급자 구성 파일의 복사본을 백업으로 만듭니다.
- oauthproviders.xml 파일을 엽니다.
- 파일을 검토하고 필요한 OAuth 공급자 설정을 사용할 수 있는지 확인합니다. 공급자를 추가하려면 다음 단계를 수행합니다.
- 기존 OAuth 공급자 노드와 모든 자식 노드를 복사합니다. 모든 공급자 노드는 다음 루트 노드 내에 포함되어 있습니다.<OAuthProvider> </OAuthProvider>
- 새 OAuth 공급자 노드와 모든 자식 노드를 다음 루트 노드 아래에 추가합니다.<TrustedOAuthProviders> </TrustedOAuthProviders>
- 각 공급자의 설정을 구성합니다. 다음 설정 값을 업데이트합니다.
- OAuth providername이 노드의 OAuth 공급자를 식별합니다. 공급자의 이름을 입력합니다.참고:공급자 이름을 입력할 때는 소문자를 사용하십시오.
- AuthorizationURL이 공급자의 권한 부여 서버 끝점 URL을 제공합니다. 이 URL은 사용자를 성공적으로 인증한 후 권한 부여 토큰을 생성해야 합니다.Google 예: https://accounts.google.com/o/oauth2/authFacebook 예: https://www.facebook.com/dialog/oauth
- AccessTokenURL액세스 토큰 끝점 URL을 제공합니다. 사용자는 응용 프로그램 구성 상세 정보와 권한 부여 코드를 교환하여 액세스 토큰에 대해 쿼리할 수 있습니다.Google 예: https://accounts.google.com/o/oauth2/tokenFacebook 예:https://graph.facebook.com/oauth/access_token
- 등록된 각 응용 프로그램에 대한 설정을 구성합니다. 응용 프로그램 노드 및 모든 자식 노드는 다음 루트 노드 아래에 있습니다.<Application> </Application>다음 설정 값을 업데이트합니다.
- Application appnameOAuth에 등록된 응용 프로그램에 대한 구성과 사용자 인증 구성을 식별합니다. 최종 사용자가 OAuth 인증에 대한 구성을 사용하려면 FCC 페이지에서 이 식별자를 제공해야 합니다.예: ForwardIncGoogleApp, ForwardIncFacebookApp중요!이러한 응용 프로그램 이름은 예제 값일 뿐입니다. 배포에는 실제 응용 프로그램 이름을 입력하십시오. 또한, 이 파일에 입력하는 응용 프로그램 이름은 oauth.fcc 파일에 입력한 응용 프로그램 이름과 일치해야 합니다.
- ApplicationURL등록된 응용 프로그램 URL을 지정합니다. 이 설정 값을 응용 프로그램 등록 시 입력한 것과 동일한 리디렉션 URI(Google) 또는 사이트 URL(Facebook)로 업데이트합니다. 예를 들어, Google 리디렉션 URI 값이 다음과 같이 설정된 경우:리디렉션 URI:https://fedserver.bizpartnerinc.ca/siteminderagent/forms/oauthcb.fcc이 파일에서 ApplicationURL의 값은 다음과 같습니다.</OAuthProvider><Application appname="ForwardIncGoogleApp"><ApplicationURL><!-- HOSTNAME : WebAgent/SPS host name -->https://fedserver.bizpartnerinc.ca/siteminderagent/forms/oauthcb.fcc</ApplicationURL>URL의 형식은 SecureURLs 에이전트 매개 변수의 값에 따라 달라집니다. 관리 UI에서 SecureURLs 매개 변수의 값을 확인하십시오. 이 매개 변수는 호스트 에이전트의 에이전트 구성 개체에 있습니다.
- SecureURLs 매개 변수가 Yes로 설정되어 있으면 URL을 다음 형식으로 입력하십시오.http(s)://agent_host/siteminderagent/forms/oauthcb.fcc?SMQUERYDATA=Sample예: https://myagent.ca.com/siteminderagent/forms/oauthcb.fcc?SMQUERYDATA=Sample
- SecureURLs 매개 변수가 No로 설정되어 있으면 URL을 다음 형식으로 입력하십시오.http(s)://agent_host/siteminderagent/forms/oauthcb.fcc
- ClientIDOAuth 서버에 등록된 클라이언트 응용 프로그램의 식별자가 포함됩니다. 이 설정 값을 등록된 클라이언트 ID로 업데이트합니다. 권한 부여 서버에서는 응용 프로그램이 성공적으로 등록된 경우 이 ID 값을 제공합니다.
- 암호ClientID와 연결된 암호를 나타냅니다. 이 설정 값을 ClientID와 연결된 암호로 업데이트합니다. 권한 부여 서버에서는 응용 프로그램이 성공적으로 등록된 경우 이 값을 제공합니다.
- PROVIDERLINK응용 프로그램을 공급자와 연결합니다. 정의된 공급자의 providername 값을 지정합니다. 이 응용 프로그램은 OAuth 인증을 수행하는 동안 공급자 구성을 사용합니다.예: google, facebook
- 범위응용 프로그램이 사용자에게 요청하는 필수 권한 유형을 지정합니다. 예를 들어 Scope 값이 https://www.googleapis.com/auth/userinfo.profile인 경우 응용 프로그램은 기본 사용자 프로필 정보에 대한 읽기 전용 권한을 부여할 수 있습니다.이 Scope 값은 권한 부여 토큰 요청에 포함되어 전달됩니다. 클라이언트는 코드를 사용하여 UserInfoURL 특성에 지정된 리소스 URL에 액세스할 수 있습니다. 관리자는 이 특성에 단일 값을 지정하거나 여러 값을 공백으로 구분하여 지정할 수 있습니다.
- UserInfoURL생성된 액세스 토큰으로 사용자 정보를 쿼리할 수 있는 단일 URL이나 공백으로 구분된 여러 URL을 지정합니다. 이 URL은 클라이언트가 액세스를 시도하는 리소스를 나타냅니다.
- UserAttribute사용자 특성을 지정합니다. 이 값을 OAuth 사용자 정보의 사용자 식별 클레임으로 업데이트합니다. 이 특성 값은 사용자를 명확히 하는 데 사용됩니다. 예를 들어 이 사용자 특성으로 "email"을 사용할 수 있습니다.
- 파일을 저장한 후 닫습니다.
에이전트에서 FCCCompatMode 비활성화
CAM 에이전트 구성에서 FCCCompatMode 설정을 사용하지 않도록 설정하십시오.
다음 단계를 수행하십시오.
- 관리 UI에 로그인합니다.
- "인프라", "에이전트"를 차례로 클릭합니다.
- "에이전트 구성 개체"를 클릭합니다.
- "에이전트 구성 개체" 페이지가 표시됩니다.
- 검색 조건을 지정하고 "검색"을 클릭합니다.검색 조건과 일치하는 에이전트 구성 개체의 목록이 표시됩니다.
- CAM 에이전트를 선택하고 수정합니다.
- "수정"을 클릭합니다.
- FCCCompatMode 설정을 no로 설정합니다.
- 변경 내용을 저장합니다.
OAuth 인증 체계 구성
관리 UI를 사용하여 OAuth 인증 체계 개체를 구성하십시오.
네트워크에 다중 쿠키 도메인이 포함되어 있고 각 쿠키 도메인에 인증 체계가 필요한 경우 각 쿠키 도메인에서 별도의 인증 체계 개체를 구성하십시오.
참고:
Solaris 플랫폼에서 작동하는 경우 sun.security.provider.Sun 공급자가 첫 번째 공급자로 등록되도록 jre_root
/lib/security 디렉터리에 있는 java.security 파일을 수정하십시오.다음 단계를 수행하십시오.
- "인프라", "인증", "인증 체계"를 차례로 클릭합니다.
- "인증 체계 만들기"를 클릭합니다.
- 새 개체 옵션을 선택하고 "확인"을 클릭합니다."인증 체계 만들기" 페이지가 표시됩니다.
- 이름 및 보호 수준을 입력합니다.
- "인증 체계 유형" 목록에서 OAuth 템플릿을 선택합니다.체계 관련 설정이 표시됩니다.
- 나머지 매개 변수를 구성하고 "제출"을 클릭합니다.
- (선택 사항) 연결 시간 만료 및 소켓 시간 만료 값을 구성하려면 다음 단계를 수행합니다.
- <installation_home>/config/로 이동하여 JVMOptions.txt 파일을 엽니다.
- 파일에 다음 매개 변수를 추가합니다.-Dauthscheme.oauth.connection_timeout=30000-Dauthscheme.oauth.socket_timeout=60000
- 필요한 경우 값을 수정합니다.
- 변경 내용을 저장합니다.
중요!
프록시 설정을 변경한 경우에는 정책 서버를 다시 시작해야 합니다.OAuth 인증 체계를 구성하는 데 필요한 태스크를 완료했습니다. 이제 정책 또는 응용 프로그램 구성 요소에서 인증 체계를 사용하여 리소스를 보호할 수 있습니다.