OAuth에서 ID 추출 스테이지 중에 사용자 보안을 위해
사용자 정의 HTML 양식을 작성할 수 있습니다.
암시, 액세스 코드 또는 자원 소유자 비밀번호 권한 부여 유형을 사용할 때
원시 OAuth 제공자 구성이 ID 추출을 포함합니다. 사용자 신임 정보를 추출하기 위한 방법을 선택하는 옵션이 있으며 선택사항 중 하나는
사용자 정의 HTML 양식입니다. 자세한 내용은 ‘ OAuth 네이티브 공급자 구성’을 참조하십시오. 이 주제에서는
ID 추출을 위해 사용자 정의 HTML 양식을 작성하는 방법을 설명합니다.
이 태스크에 대한 정보
세 개의 OAuth 정의(내제 플로우, 자원 소유자 비밀번호 플로우,
액세스(권한 부여) 코드 플로우 중에 API가 제공하는 서비스에 로그인하기 위한 양식이
사용자에게 제공됩니다. 사용자 정의 양식 또는 기본 양식을 제공할 수 있습니다. 사용자 정의 양식은 특정 요구사항을 충족시켜야 합니다.
중요: IBM® API Connect 가 양식에 정보를 삽입하는 데 사용하는 필드의 이름은 대소문자를 구분합니다.
원시 OAuth 제공자에 대해 사용자 정의 로그인 양식을 작성하려면
다음 단계를 완료하십시오.
- API Connect 구문 분석이 올바른 XHTML 문서를 파싱하여 숨겨진 필드를 삽입합니다.
- XHTML 양식의 경우, 메소드를 POST로, 인코딩 유형을 application/x-www-form-urlencoded로, 조치를 authorize로 설정하십시오. 필요한 기타 매개변수를 추가하십시오.
예를 들면 다음과 같습니다.
<form method="POST" enctype="application/x-www-form-urlencoded" action="authorize">
- 이름이 username 인 텍스트 입력 필드를 작성하고 이름이 password인 비밀번호 입력 필드를 작성하십시오.
- 라인을 추가하십시오 <EI-INJECT-HIDDEN-INPUT-FIELDS>. 이 세 번째 요소는 API Connect 가 사용자가 제출한 데이터를 보완하기 위해 입력 필드로 대체하는 플레이스홀더입니다.
- 로그인 프로세스를 시작하기 위한 단추를 작성하십시오.
예를 들면 다음과 같습니다.
<button id="login_button" type="submit" name="login" value="true">Log in</button>
- 선택 사항: 사용자가 로그인 페이지를 처음 방문할 때 표시되는 텍스트를 추가하세요. 표시하려는 텍스트에는 <EI-LOGINFIRSTTIME> 태그를 사용하세요.
- 선택 사항: 사용자가 인증에 실패하여 로그인 페이지로 되돌아갈 때 표시될 텍스트를 추가하세요. 표시하려는 텍스트에는 <EI-LOGINFAILED> 태그를 사용하세요.
- 선택 사항: 사용자 정의 양식에서 오류가 발생하여 사용자에게 제대로 표시되지 않을 경우 오류 메시지를 표시합니다. <EI-INTERNAL-CUSTOM-FORM-ERROR/>
태그를 사용하십시오. 메시지 텍스트가 자동으로
생성됩니다. 사용자에게 이 오류 메시지가 표시되지 않도록 하려면 테스트 과정에서 이러한 오류를 발견해야 합니다.
- 선택 사항: 이미지나 JavaScript 와 같이 외부 소스에서 불러오는 요소를 추가할 수 있습니다.
- 필요에 따라 공백 및 기타 기능을 삽입하십시오. 1단계부터 8단계 까지 완료하면 다음과 같은 예시와 유사한 양식이 생성됩니다:
<html lang="en" xml:lang="en">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/></head>
<body>
<form method="POST" enctype="application/x-www-form-urlencoded" action="authorize">
<h1>Please sign in</h1>
<p>Username </p>
<p style="text-indent: 0em;"><input type="text" name="username" required="required" /> </p>
<p>Password </p>
<p style="text-indent: 0em;"><input type="password" name="password" required="required" /> </p>
<EI-INJECT-HIDDEN-INPUT-FIELDS/>
<p style="text-indent: 2em;"> <button id="login_button" type="submit" name="login" value="true">Log in</button> </p>
<EI-LOGINFIRSTTIME>
<p>If you have forgotten your user name or password, contact your system administrator.</p>
</EI-LOGINFIRSTTIME>
<EI-LOGINFAILED>
<p style="color: red">At least one of your entries does not match our records.
If you have forgotten your user name or password, contact your system administrator.</p>
</EI-LOGINFAILED>
<EI-INTERNAL-CUSTOM-FORM-ERROR/>
</form>
</body>
</html>
- 사용자가 선택한 URL에서 양식을 사용 가능하게 제공하십시오.
- 아직 수행하지 않은 경우 ID 추출을 위해 사용자 정의 HTML 양식을 사용하고
양식이 사용 가능한 URL을 제공하도록 원시 OAuth 제공자를 구성하십시오.