iOS 네트워크 개발(5) 인증 및 권한 수여에 대한 기본적인 이해

오리지널 블로그, 전재 출처 블로그를 밝혀주세요.csdn.net/hello_hwc
선언: 회사에서 오래 일했는지 iOS까지 습관적으로 IOS로 썼어요. 지난 글에서 한 학생이 언급했으니까 고쳐볼게요.본고는 서버 인증의 절차를 소개하는데 저는 서버 측에 대한 이해가 적기 때문에 부정확한 부분이 있으면 지적을 환영합니다. 제때에 수정하겠습니다.

인증 및 인증


간단하게 말하면 서버에 많은 자원을 저장했다. 이런 자원은 클라이언트가 모두 접근할 수 있는 것이 아니다. 클라이언트가 자원을 방문할 때 먼저 서버에 이 자원을 내가 접근할 수 있다는 것을 알려야 한다. 이것이 바로 인증과 권한 수여의 과정이다.

개인 플랫폼(자체 앱에서 사용할 수 있는 서버)의 인증 방식


정적 사용자 이름 암호


주의: 구체적인 상황은 서버 측의 디자인과 관계가 있으며, 모든 것이 이런 것은 아니다
  • App 사용자 이름 비밀번호를 로그인한 후에 사용자 이름 비밀번호를 서버에 보내면 비밀번호는 일반적으로 암호화 처리를 한다
  • 서버에서 암호를 해독한 후에 인증을 하고 인증에 성공하면 Session의 ID와 token을 되돌려줍니다. Session은 유효기간이 있습니다
  • App이 API 요청을 할 때 SessionId를 서버에 보내고, Session이 만료되면 App이 자동으로 token으로 새 Session을 가져옵니다

  • 동적 암호


    흔히 볼 수 있는 것은 휴대전화에 작동하는 동적 비밀번호다.
    BTY:

    인증 코드


    서버에서 클라이언트의 로그인 이상이 발견되면 앱에 인증 코드로 사진 한 장을 보냅니다.

    오픈 플랫폼의 (타사 애플리케이션 액세스용) 인증 방식


    흔히 볼 수 있는 두 가지 방식

    Http Basic Authorization


    간단하게 말하면 매번 API 요청은 사용자 이름 비밀번호를 포함하고 사용자 이름 비밀번호는 httpheader의 한 줄로 해야 한다.IOS 코드도 간단합니다.
    아래 코드는 권한을 부여받은 Header를 추가한 것일 뿐입니다. 정상적으로 사용하려면 다른 Header가 필요합니다.
       NSString *username = @"";
        NSString *password = @"";
        NSMutableURLRequest * request = nil;
        NSString *basicAuthStr = [NSString stringWithFormat:@"%@:%@",username,password];
        NSData * basicAuthData = [basicAuthStr dataUsingEncoding:NSASCIIStringEncoding];
        NSString * basicAuthValue = [NSString stringWithFormat:@"Basic %@",[basicAuthData base64EncodedDataWithOptions:0]];
        [request setValue:basicAuthValue forHTTPHeaderField:@"Authorization"];

    OAuth 2


    주로 네 가지 부분을 포함한다
  • RO(resource onwer) 자원 소유자, 자원에 대한 권한 수여 능력자..
  • RS(resource sever) 자원 서버, 실제 자원 저장 장치
  • Client 제3자 응용은 RO 권한 수여 후 해당하는 자원에 접근할 수 있다
  • AS(authorization server) 권한 수여 서버는 방문자에 대해 신분 인증을 하고 RO에 권한 수여 심사 절차를 제공하며 최종적으로 Access Token을 방문자에게 수여한다.Access Token은 실효가 있습니다

  • 대략적인 절차는 이렇다
  • Client는 자원 소유자에게 RO의 일부 자원에 액세스할 것을 요청합니다
  • RO는 클라이언트에게 임시 token을 반환하여 클라이언트가 AS를 통해 권한을 부여할 수 있도록 한다
  • Client는 RO를 통해 반환된 물건을 AS로 인증합니다
  • AS 승인이 성공하면 클라이언트에게 Acccess Token을 반환합니다
  • 제3자 응용 프로그램이 Access Token을 들고 서버에 접근합니다
  • 서버가 Access Token을 검증하고 위조되지 않고 기간이 만료되지 않으면 Cilent에 대응하는 자원으로 돌아가거나 관련 작업을 수행합니다

  • 시나닷컴의 OAuth 2를 예로 들면 제3자 응용 프로그램이 시나닷컴을 방문해야 하는 것을 예로 들다
  • App은 마이크로블로그의 RO에 APP KEY(유일한 표시 응용)와 APP secret(응용 비밀 키)를 제공한다. 이런 것들은 마이크로블로그에서 미리 신청할 수 있다
  • MicroboRO가 App ID를 검증한 후 RO에 임시 OAuth_ 제공token
  • App with 임시 OAuth_token은 AS의 권한 수여 링크에 권한 수여를 합니다
  • 사용자가 사용자 이름 비밀번호를 입력하고 권한 수여에 동의한 후 AS로 Access Token으로 돌아갑니다
  • App이 Access Token을 들고 있으면 관련 Http 조작을 할 수 있다. 예를 들어 공유 마이크로 블로그 등이다
  • 좋은 웹페이지 즐겨찾기