[flutter] 플러터에서의 마이크로소프트 Azure와의 연결 설정 방법

플러터(Flutter)는 구글이 개발한 UI 프레임워크로, 다양한 플랫폼에서 동작할 수 있는 모바일 애플리케이션을 개발할 수 있습니다. 이번 포스트에서는 플러터 애플리케이션에서 마이크로소프트 Azure와의 연결 설정 방법을 안내하겠습니다.

Azure 계정 생성 및 앱 등록

  1. 마이크로소프트 Azure 포털에 로그인합니다.
  2. 왼쪽 메뉴에서 “Azure Active Directory”를 선택합니다.
  3. “애플리케이션 등록”을 클릭합니다.
  4. “새 애플리케이션 등록”을 선택하고 애플리케이션의 이름을 입력합니다.
  5. “리디렉션 URI”에는 https://login.live.com/oauth20_desktop.srf를 입력합니다.
  6. 애플리케이션을 등록하고 나면 “애플리케이션 ID”를 확인할 수 있습니다. 이 값은 향후 플러터 애플리케이션에서 사용됩니다.
  7. “인증”을 클릭하고 “새 클라이언트 비밀”을 생성합니다. 이 값은 플러터 앱에서 Azure와의 연결을 설정할 때 필요한 비밀 키입니다.
  8. 생성된 클라이언트 비밀 값을 기록해 둡니다.

플러터 앱에서 Azure와의 연결 설정

  1. 플러터 프로젝트의 pubspec.yaml 파일에 다음 의존성을 추가합니다:

    dependencies:
      flutter_appauth: ^0.9.1
      http: ^0.13.0
    
  2. 플러터 앱의 진입점인 main.dart 파일을 엽니다.
  3. 다음과 같이 필요한 패키지를 import 합니다:

    import 'package:flutter_appauth/flutter_appauth.dart';
    import 'package:http/http.dart' as http;
    
  4. main() 함수 내에서 다음과 같이 AppAuth 인스턴스를 생성하고 Azure에 등록한 애플리케이션의 설정을 추가합니다:

    final appAuth = FlutterAppAuth();
    final azureClientId = 'Azure 애플리케이션 ID';
    final azureClientSecret = 'Azure 클라이언트 비밀 키';
    final azureAuthority = 'https://login.microsoftonline.com/{YOUR_TENANT_ID}';
    
  5. 연결 설정을 위한 콜백 URI를 정의합니다:

    final redirectUri = 'com.example.flutterappauth:/oauthredirect';
    
  6. Azure와의 인증 및 액세스 토큰을 가져오는 함수를 작성합니다:

    Future<Map<String, dynamic>> signInWithAzure() async {
      final authorizationTokenResponse = await appAuth.authorizeAndExchangeCode(
        AuthorizationTokenRequest(
          azureClientId,
          redirectUri,
          serviceConfiguration: AuthorizationServiceConfiguration(
            '${azureAuthority}/v2.0',
          ),
          scopes: ['openid', 'profile', 'offline_access'],
          additionalParameters: {'prompt': 'select_account'},
        ),
      );
    
      final accessToken = authorizationTokenResponse.accessToken;
      final idToken = authorizationTokenResponse.idToken;
    
      // 액세스 토큰 및 ID 토큰을 사용하여 필요한 작업 수행
    
      return {'accessToken': accessToken, 'idToken': idToken};
    }
    
  7. main() 함수에서 signInWithAzure() 함수를 호출하여 Azure와 연결을 설정하고 액세스 토큰 및 ID 토큰을 얻고자 하는 곳에서 사용합니다.

이제 플러터 앱과 마이크로소프트 Azure를 연결할 수 있는 방법을 알게 되었습니다. Azure와의 연결을 통해 사용자 관리, 데이터 저장 및 인증 기능을 효과적으로 구현할 수 있습니다.

참고 자료