13. “If you can create a webpage,
you can create an Office Add-ins”.
From Office Add-in Blog
14. Office Add-in의 종류
• 다양한 형태의 앱 개발 가능
• Task Pane App
• Content App
• Mail App
• Mail Compose App
Excel ApplicationWord Application
Document
Outlook Application
Document Inbox Selected Message
Task Pane
App
Content
App
Mail App
Reply | Reply All| Forward
app
MessageBody
Outlook Application
Inbox New Message
To: [email protected]
Subject: Topsecret stuff
MessageBody
Mail
Compose
App
16. Office Add-in의 구조
• XML-based manifest
• 웹 페이지를 참조
• Office Add-in의 종류를 선언
• Web Page
• 다양한 방식
• Office.js 참조
Office
Manifest
<XML>
Web
Page
HTML+JS
Referencing
Office.js
App for Office
17. Office Add-in의 동작 방식
• 웹 표준으로 작성된 페이지
• HTML5, JavaScript, CSS
Browser Control
or
iFrame
18. Office Add-in의 동작 방식
• 웹 표준으로 작성된 페이지
• Office.js가 interop의 역할
Office.js
Browser Control
or
iFrame
19. Office Add-in의 동작 방식
• 웹 표준으로 작성된 페이지
• Office.js가 interop의 역할
• 웹 서버로 부터의 호스팅
웹 서버
Browser Control
or
iFrame
20. <?xml version="1.0" encoding="UTF-8"?>
<OfficeApp xsi:type="MailApp">
<Version>1.0.0.0</Version>
<ProviderName>Salesforce.com</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue=“Salesforce" />
<Capabilities>
<Capability Name="Mailbox" />
</Capabilities>
<DesktopSettings>
<SourceLocation DefaultValue=“https://salesforce.com/office" />
<RequestedHeight>300</RequestedHeight>
</DesktopSettings>
<Permissions>ReadItem</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Message"/>
<Rule xsi:type="ItemIs" ItemType="Appointment"/>
</Rule>
</OfficeApp>
Office Add-in의 동작 방식
• 웹 표준으로 작성된 페이지
• Office.js가 interop의 역할
• 웹 서버로 부터의 호스팅
• Almost zero client footprint
21. Office Add-in의 동작 방식
• 웹 표준으로 작성된 페이지
• Office.js가 interop의 역할
• 웹 서버로 부터의 호스팅
• Almost zero client footprint
• Office가 동작하는 곳 어디에서든
46. Provider-hosted App 개발 방법
• SharePoint와 분리된(decoupled) 로직
• API를 통한 SharePoint와의 커뮤니케이션
• (REST or CSOM)
• 어떤 웹 플랫폼이던 개발과 호스팅 가능
• OAuth를 이용한 인증
REST/CSOM
50. Office ribbon을 통한 스토어 접근
• 다양한 플랫폼, 다양한 클라이언트에서…
• Word, Excel, PPT, Project, Access
• Office Online
• Android, iOS
52. Calendar
Office 365 APIs
Office Graph
Search
Social
Mail PeopleDocuments
openness and
flexibility
consistent
development
platform
Powering
a world
of devices
iOS
dev.office.com
Groups Notebooks Videos
53. 조직의 정보를 가져 오기 위해서는…
• Office 365의 인증은 Azure AD가
• Azure AD를 통한 응용프로그램 인증은 OAuth2.0 프로토콜을 사용
정보를 가져가려면 조직에 로그인해야…
60. Azure AD OAuth for Office 365
• Office 365를 위한 Single Auth
• Azure AD Graph, Exchange, SharePoint
• Device apps and web sites
• Admin and end-user consent
• Secure protocol
• OAuth 2.0
• No capturing user credentials
• Fine-grained access scopes
• Supports MFA and federated user sign-in
• Long-term access through refresh tokens
62. • 인증 용도로만 사용
• 별도의 지불 정보가 필요 없음
• Azure IaaS / PaaS 기능 사용을
위해서는 별도의 등록이 필요
Office 365 계정으로 Azure에 등록, 로그인
63. Application 등록
• 종류
• Third-party Apps in the gallery
• Office 365 SharePoint, Exchange
• Dynamics CRM
• …
• Custom Apps
• Native Client
• Web Application
• Web API
64. Custom Application 등록
• 주요 정보
• Client ID
• Keys (aka. Client Secret)
• Redirect / Sign-On URI
65. Azure AD
1. Auth 코드 요청 (Client ID & Key, Redirect URI, App ID URI)
OAuth 2.0
App
Native App
• Client ID & Key
• Redirect URI
Impersonation grant
권한 부여(Authorize) 끝점 토큰(Token) 끝점
2. 로그인
3. Redirect URI로 Auth 코드 반환
사용자
로그인
…
OAuth 2.0 인증 절차
Office 365
API
Azure AD(O365)
• Client ID
• App ID URI
• Redirect URL
66. 4. Auth 코드를 이용하여 액세스 토큰 요청
(Auth Code, Client ID, Redirect URI, App ID URI)
5. 액세스 토큰 반환
6. 액세스 토큰 전송, API 호출
Office 365
API
Azure AD
Azure AD(O365)
• Client ID
• App ID URI
• Redirect URL
App
Native App
• Client ID
• Redirect URI
Impersonation grant
OAuth 2.0 권한 부여(Authorize) 끝점 토큰(Token) 끝점
7. HTTP Response 반환
OAuth 2.0 인증 절차
69. 참고 자료
- Office 스토어
- Office 개발자 센터
- Office 365 Patterns and Practices
- Office 365 App 개발 사례
- Office 365 App 개발 Training 컨텐츠 (Github)
- 통합 Application 등록 포털 (Microsoft ID / 학교 및 조직의 계정)
- Azure AD 발표자료 (MVA)
- Outlook API Test사이트