R interface to Microsoft Graph REST API
Перейти к файлу
Hong Ooi 10a814291a update tests 2019-09-20 17:41:33 +10:00
R use askYesNo, update news 2019-09-13 18:01:33 +10:00
man add hexagon, rebranding 2019-08-03 13:38:15 +10:00
tests update tests 2019-09-20 17:41:33 +10:00
vignettes update vignette links 2019-06-05 20:01:57 +10:00
.Rbuildignore ignore pipeline yml 2019-06-05 20:00:15 +10:00
.gitattributes init from AzureRMR 2019-03-14 20:28:37 +11:00
.gitignore init from AzureRMR 2019-03-14 20:28:37 +11:00
CONTRIBUTING.md add contrib 2019-05-22 22:20:53 +10:00
DESCRIPTION use askYesNo, update news 2019-09-13 18:01:33 +10:00
LICENSE updating license, ver no 2019-03-17 16:52:07 +11:00
LICENSE.md updating license, ver no 2019-03-17 16:52:07 +11:00
NAMESPACE basic device object 2019-03-24 23:37:31 +11:00
NEWS.md use askYesNo, update news 2019-09-13 18:01:33 +10:00
README.md switch to Azure Pipelines 2019-08-16 11:53:11 +10:00
azure-pipelines.yml switch to Azure Pipelines 2019-08-16 11:53:11 +10:00

README.md

AzureGraph

CRAN Downloads Build Status

A simple interface to the Microsoft Graph API. The companion package to AzureRMR and AzureAuth.

Microsoft Graph is a comprehensive framework for accessing data in various online Microsoft services. Currently, this package aims to provide an R interface only to the Azure Active Directory part, with a view to supporting interoperability of R and Azure: users, groups, registered apps and service principals. Like AzureRMR, it could potentially be extended to cover other services.

The primary repo for this package is at https://github.com/Azure/AzureGraph; please submit issues and PRs there. It is also mirrored at the Cloudyr org at https://github.com/cloudyr/AzureGraph. You can install the development version of the package with devtools::install_github("Azure/AzureGraph").

Authentication

AzureGraph uses the same authentication procedure as AzureRMR and the Azure CLI. The first time you authenticate with a given Azure Active Directory tenant, you call create_graph_login() and supply your credentials. R will prompt you for permission to create a special data directory in which to save the obtained authentication token and AD Graph login. Once this information is saved on your machine, it can be retrieved in subsequent R sessions with get_graph_login(). Your credentials will be automatically refreshed so you don't have to reauthenticate.

Linux DSVM note If you are using a Linux Data Science Virtual Machine in Azure, you may have problems running create_graph_login() (ie, without arguments). In this case, try create_graph_login(auth_type="device_code").

Sample workflow

AzureGraph currently includes methods for working with registered apps, service principals, users and groups. A call_graph_endpoint() method is also supplied for making arbitrary REST calls.

library(AzureGraph)

# authenticate with AAD
# - on first login, call create_graph_login()
# - on subsequent logins, call get_graph_login()
gr <- create_graph_login()

# my user information
me <- gr$get_user("me")

# my groups
head(me$list_group_memberships())

# my registered apps
me$list_owned_objects(type="application")

# create an app
# by default, this will have a randomly generated strong password with duration 1 year
app <- gr$create_app("AzureR_newapp")

# get the associated service principal
app$get_service_principal()

# using it in conjunction with AzureRMR RBAC
AzureRMR::get_azure_login()$
    get_subscription("sub_id")$
    get_resource_group("rgname")$
    add_role_assignment(app, "Contributor")